Java
import java.util.ArrayList; import java.lang.StringBuilder; public class Solution { ArrayList<String> res ; int[] vis ; public ArrayList<String> Permutation(String str) { res = new ArrayList<>(); vis = new int[str.length()]; for(int i = 0; i < str.length(); i++){ getList(new StringBuilder(),i,str); vis[i] = 0; } return res; } public void getList(StringBuilder sb, int i, String s){ sb.append(s.charAt(i)); vis[i] = 1; if(sb.length() == s.length()){ if(!res.contains(sb.toString())) res.add(sb.toString()); return; } for(int j = 0; j < s.length(); j++){ if(vis[j] == 0){ getList(sb, j, s); sb.deleteCharAt(sb.length()-1); vis[j] = 0; } } } }