public List<List<Integer>> combinationSum(int[] candidates, int target) {
        if (candidates.length == 0) {
            return new ArrayList<>();
        }
        List<List<Integer>> rr = new ArrayList<>();
        List<Integer> r = new ArrayList<>();
        Arrays.sort(candidates);
        combinationSumUtil(candidates, target, r, rr, 0);
        return rr;
    }
Date 07/10/2015
@author Tushar Roy

Given an input and total print all combinations with repetitions in this input
which sums to given total.
e.g
input - {2,3,5}
total - 10

Output
[2,2,2,2,2],
[2,2,3,3],
[2,3,5],
[5,5]]
Reference
https://leetcode.com/problems/combination-sum/
src/com/interview/recursion/PrintSumCombination.java