|
|
|
@ -3,6 +3,8 @@ import re |
|
|
|
import itertools |
|
|
|
from spellchecker import SpellChecker |
|
|
|
SPELL = SpellChecker() |
|
|
|
|
|
|
|
|
|
|
|
def canidates(letters, min=2, max=5): |
|
|
|
pos = [] |
|
|
|
for length in range(min, max+1): |
|
|
|
@ -12,10 +14,12 @@ def canidates(letters, min=2, max=5): |
|
|
|
pos.append(word) |
|
|
|
return SPELL.known(pos) |
|
|
|
|
|
|
|
|
|
|
|
def filter_pos(pos, regex): |
|
|
|
pat = re.compile(regex + '$') |
|
|
|
return list(filter(pat.match, pos)) |
|
|
|
|
|
|
|
|
|
|
|
while True: |
|
|
|
letters = input('Enter letters: ') |
|
|
|
if letters == ":quit:": |
|
|
|
@ -27,7 +31,8 @@ while True: |
|
|
|
for word in filter_pos(pos, inp): |
|
|
|
print('>>>', word) |
|
|
|
print('Letters: ', ','.join(letters)) |
|
|
|
prompt = "Enter pattern, ':new:' for new letters,\nor ':quit:' to exit: " |
|
|
|
prompt = """Enter pattern, ':new:' for new letters, |
|
|
|
or ':quit:' to exit: """ |
|
|
|
inp = input(prompt) |
|
|
|
if inp == ":quit:": |
|
|
|
break |