我写了一个方法,可能写得比较烂,只是希望对你有启发
  public ArrayList print()
  {
    String source = "0123456789";
    ArrayList newlist = new ArrayList();
    ArrayList oldlist = new ArrayList();
    int len = 0;
    String s;
    //int count=0;    while (len < 6)
    {
      if(oldlist.size()==0)
      {
        for (int i = 0; i < 5; i++)
          newlist.add(source.substring(i,i+1));
      }
      else
        for (int i = 0; i < oldlist.size(); i++)
        {
          for (int j = 0; j < 10; j++)//此处j初始值可设为oldlist.get(0).toString().length()
          { s = oldlist.get(i).toString();
            if ( s.indexOf( source.charAt(j) )<0 &&
                s.charAt( s.length()-1 )<source.charAt(j) )
              newlist.add(oldlist.get(i).toString() + source.substring(j,j+1));
            //count++;
          }
        }
      oldlist.clear();
      oldlist.addAll(newlist);
      newlist.clear();
      len++;
    }
    //count++;
    return oldlist;  }