-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcode_editor.py
35 lines (33 loc) · 962 Bytes
/
code_editor.py
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
def generate_all_variations(code):
def generate_cases(current, index):
if index == len(current):
cases.append(current)
return
char = current[index]
if char in replace_dict:
for replacement in replace_dict[char]:
generate_cases(current[:index] + replacement + current[index+1:], index + 1)
else:
generate_cases(current, index + 1)
cases = []
replace_dict = {
'W': ['W', 'w'],
'w': ['W', 'w'],
'S': ['S', 's'],
's': ['S', 's'],
'K': ['K', 'k'],
'k': ['K', 'k'],
'z': ['Z', 'z'],
'Z': ['Z', 'z'],
'X': ['X', 'x'],
'x': ['X', 'x'],
'C': ['C', 'c'],
'c': ['C', 'c'],
'V': ['V', 'v'],
'v': ['V', 'v'],
'O': ['O', 'o', '0'],
'0': ['0', 'o', 'O'],
'o': ['o', 'O', '0']
}
generate_cases(code, 0)
return cases