#!/usr/bin/env python import sys if len(sys.argv) > 1: ccs = [c for c in sys.argv[1]] else: ccs = ["C"] # 32768 alphabet = ["*", "i", "h", "c", "f", "d", "q", "l"] alphabet = ["p", "P", "i", "l"] result = [] digits = None def increaseDigit(v): if v is None: v = 0 else: v = v + 1 return(v) def increase(): global digits i = len(digits) - 1 digits[i] = increaseDigit(digits[i]) while i >= 0 and digits[i] >= len(alphabet): digits[i] -= len(alphabet) i = i - 1 if i < 0: return(False) digits[i] = increaseDigit(digits[i]) return(True) def reset(cc): global digits if cc == "P": digits = 5 * [None] else: digits = 5 * [0] def galphabet(a): if a is None: return "" else: return alphabet[a] extras = [ # do not start with 'p or 's (only with 'P or 'S) 'iippii', 'ipiiippp', 'Pplpppp', 'vpppii', 'ispppp', 'ipiiiipiii', 'ipLipp', 'ippppip', 'lpiipiipi', 'ipiipipp', 'ipppllipppp', 'vppppi', 'iipppp', 'iiisppi', 'iippppp', 'vppippppp', 'ippplp', 'Pssiiiiippp', 'vpilpp', 'ippipipp', 'lpiisiipi', 'ippipipi', 'Ppppiiii', 'vpppiff', 'Pppiii', 'vpippppi', 'Pppiip', 'ippppiipppp', 'vppiipppiiiiii', 'vpipppii', 'ipsipi', 'ipiiipp', 'ipippp', 'vppippDpDi', 'Ppsppp', 'PpppLLLi', 'Pppppiip', 'ippiip', 'ipiLpp', 'ippphpi', 'ippiii', 'Ppppipi', 'vppiipp', 'Pppplii', 'ipsiip', 'vppiippp', 'vppppl', 'vpfffi', 'vppiipppiip', 'Ppppppiipp', 'vpffff', 'vpdiiiLiLp', 'lplippp', 'lipppp', 'vppiipppiiiii', 'Ppiiiiiii', 'Pppppipp', 'ipplip', 'vppippp', 'ipddpippppp', 'vppippi', 'vppppp', 'Ppiiiiiip', 'vpilppp', 'vpp', 'vPP', 'vps', 'iiippii', 'ippipip', 'iiippip', 'ipiiiipp', 'PpiiiiLpp', 'ilppip', 'iiippiip', 'Pppliiip', 'vpppiii', 'vs', 'vppipipii', 'vpppiip', 'vpppppl', 'vppiiiiddddii', 'Pilpppppp', 'Pppiiipp', 'iiisisi', 'Ppiplp', 'ippliipp', 'vpppppppp', 'vpippi', 'ispippppi', 'ipppipp', 'vppppppp', 'lipiip', 'vppppppi', 'iiiiipp', 'ipiiiipiipiii', 'ipiippi', 'S', 'Si', 'Sp', 'SP', 'Spp', 'vppiipppiiiiiii', 'Ppilpipp', 'ipplpp', 'Piiiiiiiiiiiiip', 'ippiiiiii', 'Piiiiiiiiiiiiis', 'ipiippp', 'vppipiip', 'vpiLiL', 'iiippi', 'Pidddp', 'Pllipp', 'iiippp', 'iipipi', 'vpppipppi', 'vpiipp', 'vppipp', 'vppipppiiiii', 'llpppi', 'ipssih', 'ipppppp', 'Pppiiiii', 'vpiiiiii', 'lpiiip', 'PpiLLLL', 'ispipipi', 'Ppiiiiid', 'Ppiiiiii', 'ipiiis', 'Ppippp', 'hpipip', 'vpiiLL', 'Ppippi', 'ipiipppp', 'vpiiiipp', 'ipsspl', 'Ppippip', 'Ppiipi', 'ipiippppi', 'ipiisip', 'Ppppfffi', 'lpppppi', 'lsppip', 'Pppiiiiippp', 'ippdidd', 'ipiipi', 'vpppiipp', 'ipiiipsip', 'vpppiipi', 'Piipip', 'Pppiiis', 'Pppiiip', 'ipiipp', 'Pplippp', 'Pppiipp', 'Ppiiip', 'Ppiiii', 'lpiipi', 'Pplppppp', 'PiLdii', 'Ppplipp', 'isspppi', 'lppiip', 'vppdidd', 'ipdiiiLiL', 'vpiiippppi', 'ipipppp', 'ipipppi', 'vpddpp', 'vppiipiiii', 'iiiipip', 'lpiiippp', 'vppipppiiii', 'Ppfffi', 'Pplppp', 'ipiiiiiiiippii', 'iphiihii', 'issspis', 'ipppipppp', 'vpiippp', 'ippppiiiii', 'ippiiippp', 'vlpppi', 'vpiippi', 'ippppppii', 'ippippppi', 'ippippppp', 'Ppiiiiiiii', 'vplpppi', 'vplpppp', 'Pppppipppp', 'vpiddiLLL', 'ipippi', 'vpddddd', 'ipiiiii', 'lpiipiip', 'vppiff', 'vippppp', 'iplipppplip', 'Ppiiiiiipp', 'vpippp', 'Ppipipi', 'Pfiiiiid', 'ipiiippip', 'iiplppp', 'ipppppi', 'iiippppppppp', 'PiddiLLL', 'ipppih', 'ipppii', 'ipppip', 'Ppppllli', 'ipiiiip', 'ippippp', 'liippp', 'ippippi', 'vppiiiiddddi', 'vppiiiiiiii', 'ipiiiipiiiii', 'ippipp', 'vppiiii', 'ipiisi', 'ippipi', 'ipiisp', 'vpippippp', 'ipippppp', 'iplppp', 'vppiii', 'iplppi', 'iipiipip', 'vppipppiii', 'ippppl', 'ippppi', 'vpipppp', 'vppipi', 'ispppiipspp', 'isssipp', 'iiipppi', 'vpppippi', 'vppppiii', 'vpdddddd', 'vppiiiiddddiiiiiii', 'vipppp', 'vipp', 'iiisip', 'ipppippi', 'Plpppi', 'Pppippi', 'llpipipi', 'Plpppppp', 'ipppippp', 'ipipip', 'vppipipp', 'ippppp', 'ipiiiiii', 'ipipii', 'vpidiLLL', 'vpdiLL', 'ipppippppppp', 'iiipipi', 'Pppippip', 'ipppiiiipii', 'vpidddddd', 'is', 'iiipipisp', 'Pppliippp', 'Ppppdddi', 'ipsiipi', 'vpiLLL', 'Ppiipiip', 'ippiipi', 'ipiiiiiiiippi', 'ippppiii', 'PidiLLL', 'ippppiip', 'ippiipp', 'Pissiiiiipppp', 'PiSSiiiiiPPPP', 'Ppsiiii', 'Ppppppp', 'vpiiiii', 'Ppipip', 'llpipppppihppi', 'ipsppp', 'iipiii', 'vpppppii', 'vpiiiipii', 'vppiip', 'Psipipi', 'Piiiii', 'Ppplipip', 'Ppppppi', 'vpiiippp', 'ipisii', 'iiipih', 'Piiiip', 'Piiiiii', 'ipsiippp', 'vpipii', 'Ppppli', 'Piiiiid', 'vdddppp', 'iiipip', 'Pplpppppp', 'Pppppppp', 'Ppiiiip', 'Pppppppi', 'Ppiiiii', 'vpdddd', 'PpiLdiiLi', 'PpiiLdii', 'Psiiiiiip', 'iiipspi', 'Ppppppiip', 'Ppipiipp', 'vpLLLL', 'PpiiiiL', 'Ppppiiiiiii', 'PdiiiLiL', 'ippppplp', 'vpiiiL', 'Ppiiiipp', 'vpiiip', 'vpppppp', 'vpiiii', 'vpiiipp', 'ipiiii', 'ippppppi', 'v', 'vp', 'viiiil', 'dd', 'ipppipppppp', 'Pdddddd', 'ipiiip', 'ippppppp', 'vppidd', 'ipsshpi', 'lppppi', 'Piiiiiiii', 'Pppiiii', 'Pppippp', 'Ppppip', 'Ppiiipp', 'Ppppii', 'ippiiiii', 'ipiLLpp', 'ipiiiiiiii', 'vppiipppiiii', 'Pppppp', 'vppppipiip', 'Ppdddd', 'lpppip', 'ipiiiff', 'Pppppi', 'ippipiip', 'vppipppii', 'vppipLp', 'isspis', 'issspi', 'Pppddi', 'iisipi', 'Psiipiip', 'ipiipiiipi', 'iiipppppppp', 'ippiippp', 'lplppp', 'ipiiipppp', 'ippiippi', 'lplppi', 'PiPPiiiiiPPPP', 'iiisipi', 'ippplpp', 'Piplpl', #'RR', #'RRR', #'RRRR', 'Lp', 'Vp', 'Vpi', 'vpV', 'VpVi', ] def retType(r): # be forgiving in what you accept if r == "p": r = "P" if r == "s": r = "S" return(r) for cc in ccs: reset(cc) while True: v = ("%s%s%s%s%s%s" % (cc, galphabet(digits[0]), galphabet(digits[1]), galphabet(digits[2]), galphabet(digits[3]), galphabet(digits[4]))) if len(v) > 1 and v[1] != "p": print(v) if not increase(): break for extra in extras: print("%s%s" % (cc, extra))