import java.util.ArrayList; import java.util.TreeSet; public class Solution{ public ArrayList Permutation(String str){ ArrayList result = new ArrayList<>(); if(str == null || str.length() == 0)return result; char[] chSet = str.toCharArray(); TreeSet reSet = new TreeSet<>(); Permutation(chSet,0,reSet); result.addAll(reSet); return result; } public void Permutation(char[] chSet,int begin,TreeSet reSet){ if(chSet == null || chSet.length == 0 || begin < 0 || begin > chSet.length-1)return ; if(begin == chSet.length - 1){ reSet.add(String.valueOf(chSet)); }else{ for(int i = begin;i < chSet.length;i++){ swap(chSet,begin,i); Permutation(chSet,begin+1,reSet); swap(chSet,begin,i); } } } public void swap(char[] chSet,int begin,int i){ char temp = chSet[begin]; chSet[begin] = chSet[i]; chSet[i] = temp; } }

// public void swap(char[] chars,int begin,int i){ // char temp = chars[begin]; // chars[begin] = chars[i]; // chars[i] = temp; // } // }