/**
* 双递归
* 全排列
*/
public static void permutation(int[] array,int length,int idx,int sum,Deque<Integer> deque,List<Deque<Integer>> list){
if(idx==length)return;
if(Integer.compare(sum,0)==0){
list.add(deque);
}
permutation(array,length,idx+1,sum,deque,list);
if(sum-array[idx]>=0){
deque.add(array[idx]);
permutation(array,length,idx,sum-array[idx],new ArrayDeque<>(deque),list);
deque.removeLast();
}
}