Генерация комбинаций с пользовательским количеством ее елементов

Нужно реализовать функцию, которая будет генеровать и выводить нам комбинации. Вот моя попытка, но она верно выводит только комбинации которые начинаються с 1, а затем выводит комбинации, если розсмотреть два елемента,
1 и 2,
1 и 3,
1 и 4,
2 и 6,
3 и 6,
4 и 6,
5 и 6,
а должно было:
1 и 2,
1 и 3,
1 и 4,
1 и 5,
1 и 6,
2 и 3,
2 и 4,
2 и 5,
2 и 6,
3 и 4,
3 и 5,
3 и 6,
4 и 5,
4 и 6,
5 и 6.

void Gen_Comb(int i, int x[], const int n, int j, int k) 
{
    bool Pen = false; int d;
    for (i = 0; i <= k - 1; i++)
        cout << "  " << x[i] << " "; cout << "\n  ";
    for (i = k - 1; i >= 0; i--)
    {
        d = n - k + i + 1;
        if (x[i] != d) 
        {
            x[i] = x[i] + 1;
            for (j = i + 1; j <= k - 1; j++) 
            {
                if (x[j] <= d)
                {
                    x[j] = x[j - 1] + 1;
                }
            }


            for (i = 0; i <= k - 1; i++)
                cout << x[i] << "   "; cout << "\n  ";
        }

    }
};

Ответы (0 шт):