比如 123
1
2
3
12
21
13
31
23
32
123
132
213
231
312
321
1
2
3
12
21
13
31
23
32
123
132
213
231
312
321
public class SubPerm {
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4 };
System.out.println(perm(a, 0));
}
public static int perm(int[] a, int begin) {
int count=0;
for (int i = 0; i < begin; i++) {
System.out.print(a[i] + " ");
}
if(begin>0){
count=1;
System.out.println();
}
if (begin == a.length) {
return 1;
}
for (int i = begin; i < a.length; i++) {
swap(a, begin, i);
count += perm(a, begin + 1);
swap(a, begin, i);
}
return count;
}
public static void swap(int[] a, int begin, int end) {
int temp = a[begin];
a[begin] = a[end];
a[end] = temp;
}
}