import java.util.ArrayList;
import java.util.Collections;
public class Test27 {
public static void main(String[] args) {
System.out.println(Permutation("abc").toString());
}
public static ArrayList<String> Permutation(String str) {
ArrayList<String> list = new ArrayList<>();
if (str.length() > 0) {
PermutationHelper(str.toCharArray(), 0, list);
}
Collections.sort(list);
return list;
}
private static void PermutationHelper(char[] charArray, int i, ArrayList<String> list) {
if (i == charArray.length - 1) {
if (!list.contains(String.valueOf(charArray))) {
list.add(String.valueOf(charArray));
}
} else {
for (int j = i; j < charArray.length; j++) {
swap(charArray, i, j);
PermutationHelper(charArray, i + 1, list);
swap(charArray, i, j);
}
}
}
private static void swap(char[] charArray, int i, int j) {
char tmp = charArray[i];
charArray[i] = charArray[j];
charArray[j] = tmp;
}
}