combination code c++

#include <iostream>
#include <vector>
using namespace std;

void generateCombinations(vector<int>& nums, vector<int>& combination, int idx, vector<vector<int>>& result) {
    result.push_back(combination);
    for (int i = idx; i < nums.size(); i++) {
        combination.push_back(nums[i]);
        generateCombinations(nums, combination, i + 1, result);
        combination.pop_back();
    }
}

vector<vector<int>> combine(vector<int>& nums, int k) {
    vector<vector<int>> result;
    vector<int> combination;
    generateCombinations(nums, combination, 0, result);
    return result;
}

int main() {
    vector<int> nums = {1, 2, 3};
    int k = 2;
    vector<vector<int>> result = combine(nums, k);
    for (auto vec : result) {
        for (int num : vec) {
            cout << num << " ";
        }
        cout << endl;
    }
    return 0;
}