Несколько офтоп, но может будет полезно. Я немного доработал алгоритм для поиска ошибок в двуязычном тексте. Все там, впрочем, довольно тривиально.
http://linguis.ru/art/spell
Что же касается “правильного” поиска слов - копайте в сторону автоматов и трансдьюсеров (finite state automata, transducer). Там же на сайте есть несколько примеров. Правда, на питоне наврятли это можно сделать оптимально. По крайней мере мои попытки с реализацией обходом по дереву были не оч. успешны.