Given an array of distinct positive integers candidates and a target, return all unique combinations where the chosen numbers sum to target. The same number may be reused any number of times. Return the combinations in any order, each combination's numbers sorted ascending.
Example
Input: candidates = [2, 3, 6, 7], target = 7
Output: [[2, 2, 3], [7]]