На вход программа может получать разное количества массивов, количество которых не известно до выполнения программы. И все вариации строк из этих массивов должны быть использованы.
Если бы данные были статичными, я бы написал вложенные массивы, но без них не понимаю, что делать, а как сделать это рекурсией, не могу понять.
На вход программа может получать разное количества массивов, количество которых не известно до выполнения программы.
Размерности этих массивов тоже неизвестны?
все вариации строк из этих массивов должны быть использованы.
Что такое в данном случае "вариация"? строго одно значение из каждого массива?
Если в каком-либо массиве есть два равных элемента - различны ли они с точки зрения "всех вариаций", или требуется создавать только уникальные наборы?
PS. В шарпе есть простой способ превращения многомерного массива в вектор? скажем, простым копированием содержимого памяти...
Рекурсивная функция должна принимать текущий набор строк и номер следующего массива. Функция циклом перебирает строку из следующего массива, добавляет эту строку к текущему набору и вызывается рекурсивно. После вызова последнюю строку надо из текущего набора удалить. Если в начале функции вы видите, что обработаны уже все массивы - выводите текущий набор в ответ и возвращайтесь из функции.
Еще, естественно, надо передавать в функцию массив массивов строк - ваши исходные данные.