class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<vector<int>> res;
if(k<=0) return res;
vector<int> tmp;
helper(n, k, res, tmp, 1);
return res;
}
private:
void helper(const int& n, const int&k, vector<vector<int>>& res, vector<int>& tmp, int start) {
if(tmp.size() == k) {
res.push_back(tmp);
return;
}
for(int i=start; i<=n; i++) {
tmp.push_back(i);
helper(n, k, res, tmp, i+1);
tmp.pop_back();
}
}
};