Given an array of distinct integers candidates and a target integer, return all unique combinations where the chosen numbers sum to target.
You can use the same number unlimited times. Example: candidates = [2,3,6,7], target = 7 returns [[2,2,3], [7]].
This is combinations with repetition. Read the problem, then come back.