Если вы хотите создать все эти пары, вы получите почти один триллион пар.
Чтобы хранить их где-то, вам потребуется приблизительно 20 ТБ данных на основе 20 байтов на пару строк.
Если вы хотите собрать все эти пары, вам следует подумать о генеративном подходе, который генерирует пары на лету, а не хранит их где-то.
В c # это будет выглядеть примерно так:
private IEnumerable<Tuple<string, string>> GetPairs(IEnumerable<string> strings)
{
foreach (string outer in strings)
{
foreach (string inner in strings)
{
if (outer != inner)
{
yield return Tuple.Create(outer, inner);
}
}
}
yield break;
}
Звонок
string[] strings = new string[] { "str1", "str2", "str3" };
foreach (var stringPairs in GetPairs(strings))
{
Console.WriteLine("({0},{1})", stringPairs.Item1, stringPairs.Item2);
}
Генерирует ожидаемый результат (если вы заботитесь о порядке элементов в паре).
(str1,str2)
(str1,str3)
(str2,str1)
(str2,str3)
(str3,str1)
(str3,str2)
Ожидайте, что это займет некоторое время со строками 1M.