How do you build combinations without duplicates? If you pick number , then the next number must be or greater. If you pick , the next must be or greater. This gives you a natural ordering.
You use backtracking with a start index. At each step, you try all numbers from your current position onward. Once you add a number to your combination, you recurse with the next position as the new start.
Base case: when your combination has numbers, you found a valid combination. Add it to the result and backtrack.