import java.util.ArrayList; public class Solution { public ArrayList Permutation(String str) { ArrayList list = new ArrayList<>(); if(str.equals("")) return list; addStr(list, str, "");

//两个for循环是为了去重 for(int i = 0;i < list.size();i++) { for(int j = 0;j < list.size();j++) { if(i != j) if(list.get(j).equals(list.get(i))) list.set(j, ""); } }

	for(int i = 0;i < list.size();i++) {
		if(list.get(i).equals("")) {
			list.remove(i);
			i--;
		}
	}
	
	return list;
}

public void addStr(ArrayList<String> list,String str,String newStr) {
	if(str.length() == 1) {
		list.add(newStr + str);
		return;
	}
	
	char[] cs = str.toCharArray();
	for(int i = 0;i < str.length();i++) {
		addStr(list, tostr(cs,i), newStr + cs[i]);
	}
}

public String tostr(char[] cs,int index) {
	String s = "";
	for(int i = 0;i < cs.length;i++) {
		if(i != index) s += cs[i];
	}
	
	return s;
}

}