Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import argv
- def gen_words(word):
- yield word
- sub = ['aA@', 'bB8', 'cC', 'dD', 'eE3', 'fF', 'gG6', 'hH#', 'iIlL1!', 'jJ', 'kK', 'mM', 'nN', 'oO0', 'pP', 'qQ', 'rR', 'sSzZ5$', 'tT7', 'uUvV', 'wW', 'xX', 'yY']
- def subs(l):
- for i, s in enumerate(sub):
- if l in s:
- if s.index(l) < len(s) - 1:
- return s[s.index(l) + 1]
- return l
- def reset_before(word, index):
- new_word = ""
- for i in range(0, index):
- for s in sub:
- if word[i] in s:
- new_word += s[0]
- if len(new_word) == i:
- new_word += word[i]
- return new_word + word[index:]
- index = 0
- while True:
- l = word[index]
- subs_l = subs(l)
- if subs_l != l:
- p1 = "" if index == 0 else word[:index]
- p2 = subs_l
- p3 = "" if index == len(word) else word[index+1:]
- word = p1 + p2 + p3
- word = reset_before(word, index)
- index = 0
- yield word
- else:
- index = index + 1
- if index >= len(word):
- break
- word = argv[1]
- for w in gen_words(word):
- print w
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement