ArrayList<ArrayList<Integer>> res=new ArrayList<>(); //存储最终后果public void permutation(int[] array) { permutation(array,0,array.length-1);}public void permutation(int[] array,int start,int end){ ArrayList<Integer> tempRes=new ArrayList<>(); //存储单个序列 if(start==end){//终止条件 for (int i = 0; i < array.length; i++) { tempRes.add(array[i]); } res.add(tempRes); } for (int i = start; i <= end; i++) {//外围 循环替换start——end的值,产生不同的组合 swap(array,start,i); permutation(array,start+1,end); swap(array,start,i);//还原 }}public void swap(int[] array,int left,int right){ int temp=array[left]; array[left]=array[right]; array[right]=temp;}