写一个函数,要求输入abc,则输出abc的所有排列:abc,acb,bca,bac,cab,cba

算法采用递归
public static List<String> Funcion(String input)
  {
    List<String> result=new ArrayList<String>();
    if(input!=null&&input.length()>0)
    {
      if(input.length()==1)
      {
        result.add(input);
      }
      else
      {
        char c =input.charAt(0);
        List<String> list=Funcion(input.substring(1));
         for(int i=0;i<list.size();i++)
         {
             String temp=list.get(i);
             for(int j=0;j<=temp.length();j++){
                                                 result.add(temp.substring(0, j)+c+temp.substring(j)); //这句是精髓,关键点
                                         }
            
         }
      }
      
    }
    return result;
    
  }
代码如下: