public class script {
static int count = 0;
public static void main(String[] args) {
char[] arr = new char[]{'a', 'b', 'c', 'd', 'e'};
perm(arr,0,arr.length - 1);
System.out.println(count);
}
public static void swap(char[] arr, int p, int q) {
char ch = arr[p];
arr[p] = arr[q];
arr[q] = ch;
}
public static void perm(char[] arr, int p, int q) {
if (p == q) {
count++;
for (int i = 0; i <= q; i++) {
System.out.print(arr[i]);
}
System.out.println();
} else {
for (int i = p; i <= q; i++) {
swap(arr, p, i);
perm(arr, p + 1, q); // 将p作为第一个之后,求它之后第一个到最后一个人的全排列
swap(arr, p, i);
}
}
}
}