Есть алфавит в виде произвольного массива 'a'...'z' и выходная длина N.
Возможно ли написать алгоритм перебора ("a..aa", "a..ab", .. , "z..zz") в виде чистого linq выражения без использования явных циклов и дополнительных контейнеров, которое будет лениво выводить одно за другим все значения?
string[] ss = new string[] {"a", "b", "c"};
int N = 3;
var result = from ss select ?;
foreach (var x in result)
{
Console.WriteLine(x); // "aaa" — "zzz"
}
Чувствую, что тут нужен SelectMany, но пока данный орешек не поддается.