给你一个2为数组合的,其他的组合你只要改下数字就行了public class AllLinage
{ public static void main(String[] args)
{
rank("0123456789", "", 2);
}

public static void rank(String s, String result, int len)
{
if(result.length() == len)
{
System.out.println(result);
}
else
{
for(int i = 0; i < s.length(); i++)
{
if(result.indexOf(s.charAt(i)) < 0)
rank(s, result + s.charAt(i), len);
}
}
}}

解决方案 »

  1.   

    我现在在linux下,只能把我以前写的c算法给你参考
    int getMaxJ(int n, int r,int beforePos[]){ int j_result=1,i=1; if(beforePos[1]>=(n-r+1)) return MAXCOL; else { while(beforePos[i]<(n-r+i)&&i<=r) { j_result=i; i++; } return j_result; }}bool  getNext_combination( int n, int r,int beforePos[]){      int i = getMaxJ(n,r,beforePos);   if(i==MAXCOL)   return LASTASSEM;   else   {   int temp = beforePos[i];   beforePos[i] = beforePos[i]+1;   for(int j = i+1;j<=r;j++)   {   beforePos[j]=beforePos[j-1]+1;   }   return true;   }}
      

  2.   

    public class test01 {
    public static void main(String[] args){
    for(int i = 0 ;i <=9 ; i++){
    for(int j = 0; j<=9;j++){
    System.out.print(Integer.toString(i)+Integer.toString(j)+" ");
    }
    System.out.println();
    }
    }
    }
      

  3.   

    如果不打重复的数组如 11 ,22,33……,可以用下面的方法
    public class test01 {
    public static void main(String[] args){
    for(int i = 0 ;i <=9 ; i++){
    for(int j = 0; j<=9;j++){
    if(i != j){
    System.out.print(Integer.toString(i)+Integer.toString(j)+" ");
    }
    }
    System.out.println();
    }
    }
    }
      

  4.   

    递归
    int  max=                        //组合长度>1
    string v=""                      //已经获取的值
    void print(max,v){
        for(int i=0;i<10;i++){
                string value=v+i;
                 if(max==1 && validate(value)){
                      system.out.print(v+i);} //到达组合长度 输出
                 else{
                      print(max-1,num);          //继续调用
                 }
        }
        sys.out.println();
    }boolean validate(string v)//判断是否每个字符相等
    {
         for(int i=1;i<v.length;i++){if(v.charAt(i)!=v.char(0))return false;}
         return true;
    }
      

  5.   

    我倒是有个combination的泛型算法,不过是用c++写的,用的迭代,没有递归。需要的话可以给你参考。