本题递归思想:划分,递归求解
public static ArrayList<String> Permutation(String str){
ArrayList<String > resultlist = new ArrayList<String>();
if(str.length()==0 || str==null){
return (ArrayList)resultlist;
}
char[] chars = str.toCharArray();
findsublist(chars,resultlist,0);
Collections.sort(resultlist);
return (ArrayList)resultlist;
}
public static void findsublist(char[] a, List<String> list,int i){
//递归终止条件
if(i==a.length-1){
if(!list.contains(new String(a)))
list.add(new String(a));
return ;
}else{
//递归
for (int j = i; j <a.length;j++){
swap(a,i,j);
findsublist(a,list,i+1);
swap(a,i,j);
}
}
}