Use DFS
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<int> set;
vector<vector<int> > res;
helper(0,n,k,set,res);
return res;
}
void helper(int last, int n, int k, vector<int> set, vector<vector<int> >& res)
{
if(k==0)
{
res.push_back(set);
return;
}
for(int i=last+1;i<=n-k+1;i++)
{
set.push_back(i);
helper(i,n,k-1,set,res);
set.pop_back();
}
}
};