/**
* 根据给定大小创建标识数组
* @param len
*/
public static void printAll(Integer len) {
base = new Integer[len];
for (int i = 0; i < len; i++) {
base[i] = (i + 1);
}
check(base, 0, base.length-1);
}
/**
* 排列组合
* @param base
* @param start
* @param end
*/
public static void check(Integer[] base, int start, int end) {
if (start == end) {
System.out.print("[");
for (int i = 0; i <= end; i++) {
if(i==end){
System.out.print(base[i]);
}else{
System.out.print(base[i]+",");
}
}
System.out.println("]");
} else {
for (int i = start; i <= end; i++) {
Integer temp = base[start];
base[start] = base[i];
base[i] = temp;
check(base, start + 1, end);
temp = base[start];
base[start] = base[i];
base[i] = temp;
}
}
}