Use backtracking: build combinations one element at a time. At each step, try adding numbers from the current position to n.
Base case: when the current combination has k elements, add it to the result and backtrack.
Recursive case: for each number from start to n, add it to the current combination, recurse with start = number + 1, then remove it (backtrack).