Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """Python Mask Word Generator v3.0 functional-style edition
- Created by [UCTeam] hX (c) December 2011.
- Module for generating all variants of variants table or mask.
- This not work on Python 2, because "map" function must be a generator.
- """
- import string
- from functools import reduce
- from itertools import product
- from re import findall, sub
- wordgen = lambda mask, repls=(('%c', string.ascii_lowercase), ('%C', string.ascii_uppercase), ('%l', string.ascii_letters), ('%d', string.digits), ('%p', string.punctuation), ('%w', string.whitespace), ('%P', string.printable)): (lambda mask: (lambda base: map(lambda variant: reduce(lambda prev, part: sub(r'\[\]', part, prev, 1), variant, base), product(*[(lambda token: token.split('|') if '|' in token else list(token))(token[1:-1]) for token in findall(r'\[.*?\]', mask)])))(sub(r'\[.*?\]', r'[]', mask)))(reduce(lambda prev, repl: prev.replace(*repl), repls, mask))
- if __name__ == '__main__':
- for word in wordgen('[%c][%d][%d][%d][%c][%c]ru'):
- print(word)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement