All pastes #980135 Raw Edit

Stuff

public python v1 · immutable
·published 2008-04-10 20:20 UTC
rendered paste body
from __future__ import with_statementimport sysimport readlinedef powerset(L):    return ((L[j] for j in xrange(len(L)) if (1<<j) & i)            for i in xrange(2 ** len(L)))# Generate dictionary (probably ought to read from stdin...)d = {}with open(sys.argv[1]) as f:    for word in f:        word = word.strip()        key = tuple(sorted(word))        if key in d:            d[key].append(word)        else:            d[key] = [word]try:    while True:        words = []        letters = raw_input('> ')        letters = filter(str.isalpha, letters.upper())        for p in powerset(letters):            key = tuple(sorted(p))            words += d.get(key, [])        words.sort(key=len)        longest = len(words[-1])        # Only display the longest and next-to-longest words        for word in words:            if len(word) >= longest - 1:                print word.lower()except (EOFError, KeyboardInterrupt):    pass