Оптимизировать код перебора комбинаций - C#
Формулировка задачи:
Цель кода: перебор комбинаций символов из заданного набора и запись в файл.
Примерно за полчаса сгенерировалось около 700 тыс. вариантов.
Можно ли как то ускорить процесс?
void parse()
{
string dict = "abcdefghijklmnopqrstuvwxy123456789!@#$%^&*()_+}{|\\/[].,№;:?"; //length=59
StringBuilder word = new StringBuilder();
word.Append("1234567890");
string result = "";
#region foreach
foreach (char c0 in dict)
{
word[0] = c0; result += "L"+word.ToString() + Environment.NewLine;
{
foreach (char c1 in dict)
{
word[1] = c1; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c2 in dict)
{
word[2] = c2; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c3 in dict)
{
word[3] = c3; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c4 in dict)
{
word[4] = c4; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c5 in dict)
{
word[5] = c5; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c6 in dict)
{
word[6] = c6; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c7 in dict)
{
word[7] = c7; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c8 in dict)
{
word[8] = c8; result += "L" + word.ToString() + Environment.NewLine; count++;
foreach (char c9 in dict)
{
word[9] = c9; result += "L" + word.ToString() + Environment.NewLine; count++;
}
}
}
}
}
}
}
}
}
}
}
#endregion
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == DialogResult.OK)
{
System.IO.File.WriteAllText(sfd.FileName + ".txt", result);
}
}Решение задачи: «Оптимизировать код перебора комбинаций»
textual
Листинг программы
var word = "1234567890".ToCharArray();
StringBuilder result = new StringBuilder();
foreach (char c0 in dict)
{
word[0] = c0; result.Append('L').Append(word, 0, word.Length).AppendLine();