public void combination(List<Integer> list,int[] candidates,int index, int target ){
        if(target <= 0){
            if(target == 0){
                result.add(new ArrayList<Integer>(list));
            }
            return;
        }
        for(int i =index; i < candidates.length;i++){
            if(i > 1 && candidates[i] == candidates[i-1])
                continue;
            list.add(candidates[i]);
            combination(list,candidates,i,target-candidates[i]);
            list.remove(list.size()-1);
        }
    }