Problem: Return all combinations of numbers from to .
function backtrack(n, k, start, current, result):
if current.length == k:
result.add(copy of current)
return
for i from start to n:
current.add(i)
backtrack(n, k, i + 1, current, result)
current.removeLast()
Pruning: Skip if remaining elements needed: if n - i + 1 < k - current.length: return.
Time: . Space: .