Is there an easy way in C++17 to generate variations from a given vector of elements?
void get_variations(int len, const std::vector<int> &array, std::vector<std::vector<int>> &result) {
    // ...
}
int main() {
    std::vector<std::vector<int>> result;
    std::vector<int> array = {1, 2, 3};
    get_variations(2, array, result);
    for(auto variation : result) {
        for(auto element : variation) {
            std::cout << element << ' ';
        }
        std::cout << std::endl;
    }
}
Output should be:
1 2
1 3
2 1
2 3
3 1
3 2
 
    