Estoy programando un programa de revisión ortográfica en Python. Tengo una lista de palabras válidas (el diccionario) y necesito generar una lista de palabras de este diccionario que tengan una distancia de edición de 2 desde una palabra inválida dada.Editar Distancia en Python
Sé que necesito comenzar por generar una lista con una distancia de edición de uno de la palabra no válida (y luego ejecutar eso de nuevo en todas las palabras generadas). Tengo tres métodos, inserts (...), eliminaciones (...) y cambios (...) que deberían generar una lista de palabras con una distancia de edición de 1, donde inserts genera todas las palabras válidas con una letra más que la palabra dada, eliminaciones genera todas las palabras válidas con una letra menos, y cambia todas las palabras válidas con una letra diferente.
He revisado un montón de lugares pero parece que no puedo encontrar un algoritmo que describa este proceso. Todas las ideas que he propuesto implican recorrer varias veces la lista del diccionario, lo que llevaría mucho tiempo. Si alguien pudiera ofrecer alguna idea, estaría extremadamente agradecido.
Es posible que desee consultar el corrector ortográfico de Peter Norvig (http://norvig.com/spell-correct.html) y modificarlo para adaptarlo a sus necesidades. –