def combine(self, n: int, k: int) -> List[List[int]]: res = [] nums = range(1,n+1); def dfs(k, index, path): if k == 0: res.append(path) return # backtracking for i in range(index, len(nums)): dfs(k-1, i+1, path+[nums[i]]) dfs(k, 0 ,[]) return res
def combine(self, n: int, k: int) -> List[List[int]]: res = [] nums = range(1,n+1); def dfs(k, index, path): if k == 0: res.append(path) return # backtracking for i in range(index, len(nums)): dfs(k-1, i+1, path+[nums[i]]) dfs(k, 0 ,[]) return res