Brute Force, подобрать пароль по длине

Есть пароль состоящий из букв и цифр, мне нужно подобрать его. В конце нужно чтобы выводил строку с этим паролем. Пытался найти, ничего подобного не нашел(именно чтобы строка была)

Пробовал:

IEnumerable<string> Strings()
        {
            var digits = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            var chars = Enumerable.Range((int)'A', (int)'Z' - (int)'A' + 1).Select(i => (char)i).ToArray();
            for (var c = 0L; c < Math.Pow(chars.Length, 5); ++c)
            {
                var cstr = chars[(c / (chars.Length * chars.Length * chars.Length * chars.Length) % chars.Length)].ToString()
                         + chars[(c / (chars.Length * chars.Length * chars.Length) % chars.Length)]
                         + chars[(c / (chars.Length * chars.Length) % chars.Length)]
                         + chars[(c / (chars.Length) % chars.Length)]
                         + chars[(c % chars.Length)];

                for (var i = 0L; i < 999; ++i)
                {
                    var istr = (i / 100 % 10).ToString()
                             + (i / 10 % 10).ToString()
                             + (i % 10).ToString();

                    var str = cstr.Substring(0, 2) + istr.Substring(0, 1) + cstr.Substring(2, 2) + istr.Substring(1, 1) + cstr.Substring(4, 1) + istr.Substring(2, 1);
                    yield return str;
                }
            }
        }

и этот https://programmera.ru/csharp-lessons/algoritm-brute-force-v-c/ Но тут я кода вообще не понял, и как заменить на мое значение пароля


Ответы (1 шт):

Автор решения: vazgen5678

Нашел на дне гугла нужный мне код

int Main()
{
for (int i = 0; i < 16; i++)
            {
                foreach (var Password in GetCombinations(pf.CharList.ToArray(), i))
                    Console.WriteLine(Password);
            }

        }

        private static IEnumerable<string> GetCombinations(char[] Chars, int MaximumLength) 
        { 
            if (MaximumLength < 1) 
                yield break; 
            
            foreach (var a in Chars) 
            { 
                yield return a.ToString(); 
                foreach (var b in GetCombinations(Chars, MaximumLength - 1))
                    yield return a + b; 
            }
        }
→ Ссылка