#!/usr/bin/env python3 import sys leet_map = str.maketrans({'a':'@','A':'@','e':'3','E':'3','i':'1','I':'1','o':'0','O':'0','s':'$','S':'$'}) years = ['2020','2021','2022','2023','2024','2025'] suffixes = ['', '!', '@', '#', '1', '123', '321'] def mutate(w): outs = set() bases = [w, w.capitalize(), w.upper()] for b in bases: outs.add(b) outs.add(b.translate(leet_map)) for y in years: outs.add(b + y) outs.add(b.translate(leet_map) + y) for s in suffixes: outs.add(b + s) return outs if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} word1 [word2 ...] | - (stdin)", file=sys.stderr) sys.exit(1) words = sys.argv[1:] if words == ['-']: words = [w.strip() for w in sys.stdin if w.strip()] final = set() for w in words: final |= mutate(w) for v in sorted(final): print(v)