Given distinct positive candidates and a target, return all unique combinations that sum to the target, where each candidate may be used any number of times. Each combination is a non-decreasing list; return them sorted.
Then implement combination_sum_once(candidates, target): candidates may contain duplicates and each element can be used at most once; no duplicate combinations.