summaryrefslogtreecommitdiff
path: root/WinKeyRecover/keyManager/GeneratePattern.cs
blob: dbd0809dd5ebec94ff743522d2c32274b92a3645 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace WinKeyRecover
{
    internal class GeneratePattern
    {
        private readonly List<string> generatedPatterns = new List<string>();

        public List<string> Generate(char[] patternChars, int patternLength, string patternBase = "")
        {
            if (patternLength == 1)
            {
                for (int i = 0; i < patternChars.Length; i++)
                {
                    generatedPatterns.Add(patternBase + patternChars[i]);
                }
            }
            else
            {
                for (int i = 0; i < patternChars.Length; i++)
                {
                    string patternNew = patternBase + patternChars[i];
                    _ = Generate(patternChars, patternLength - 1, patternNew);
                }
            }
            
            return generatedPatterns;
        }
    }
}