My son, Jayden (8 years old), had a homework assignment yesterday to find words made up of the letters of another word (e.g. pat in part). So, instead of thinking, we wrote this:
from itertools import permutations
import sys
word = sys.argv[1]
words = open(/usr/share/dict/words).read().split(\"\n\")
valid = set()
for k in range(1, len(word)):
for combination in permutations(word, k + 1):
to_check = \"\".join(combination)
if to_check in words:
valid.add(to_check)
print list(valid)
Use like:
$ python words-in-word.py part
He also now has some understanding of strings and lists in python.