public static int _sum = 0;
public static string _numbers;
static bool shouldSwap(char[] number, int first, int curr)
for (int i = first; i < curr; i++)
if (number[i] == number[curr])
static void findPermutations(char[] number,
if (Char.IsDigit(number[1]) && Char.IsDigit(number[2]) && Char.IsDigit(number[3]))
for(int i = 0; i < 6; i++)
for (int i = index; i < n; i++)
bool check = shouldSwap(number, index, i);
findPermutations(number, index + 1, n);
static void swap(char[] number, int i, int j)
public static void Main()
Random rnd = new Random();
char[] alphabet = { 'A', 'B', 'E', 'K', 'M', 'H', 'O', 'P', 'C', 'T', 'Y', 'X' };
alphabet[rnd.Next(0, 11)] +
rnd.Next(0, 10).ToString() +
rnd.Next(0, 10).ToString() +
rnd.Next(0, 10).ToString() +
alphabet[rnd.Next(0, 11)] +
alphabet[rnd.Next(0, 11)];
char[] number = str_in.ToCharArray();
Console.Write("\nНомер - {0}\n", str_in);
findPermutations(number, 0, n);
Console.WriteLine("\nКоличество вариантов = {0}", _sum);
Console.WriteLine(_numbers);