public void tryNext(Set<ArrayList<Integer>> set, int[] num, int level, int target, int[] has, int pos, int total) {
        if(total > target) return;
        else if(total == target) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            for(int i = 0; i < pos; i++) list.add(has[i]);
            set.add(list);
            return;
        } else {
            if(level == num.length) return;
            tryNext(set, num, level+1, target, has, pos, total);
            has[pos++] = num[level];
            total += num[level];
            tryNext(set, num, level+1, target, has, pos, total);
        }
    }