Как я могу сделать декартово произведение для элементов строки или вектора с заданной длиной? - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь создать программу, которая дает мне все возможные комбинации элементов вектора или строки. Я видел, что это можно сделать с помощью функции std :: cartesian_product в C ++, но все примеры, которые я видел, были между двумя списками. Мне нужно следующее:

Если есть такой вектор:

std::vector<std::string> letters = {"a", "b", "c", ..., "z"};

Я хочу, чтобы все комбинации были разной длины. Например, если мне нужны все комбинации минимальной длины 1 и максимальной 2, они должны выглядеть следующим образом:

a, b, c, d, ... , z, ab, ac, ad, ... , az, ... , zz

В Python я сделал это с помощью библиотеки itertools с функцией product. Я сделал это так:

for i in range(1, 3):
    for s in intertools.product(vector, repeat=i):
        print(''.join(s))

Как мне это сделать? Я немного растерялся с этим.

Спасибо !!

...