Я программирую программу проверки орфографии в Python. У меня есть список допустимых слов (словарь), и мне нужно вывести список слов из этого словаря, которые имеют расстояние редактирования 2 от данного недопустимого слова.
Я знаю, что мне нужно начать с создания списка с расстоянием редактирования, равным единице, от недопустимого слова (а затем снова запустить его для всех сгенерированных слов). У меня есть три метода: вставки (...), удаления (...) и изменения (...), которые должны выводить список слов с расстоянием редактирования 1, где вставки выводит все допустимые слова с еще одной буквой, чем данное слово, delete выводит все допустимые слова на одну букву меньше, а изменения выводит все допустимые слова на одну другую букву.
Я проверил кучу мест, но я не могу найти алгоритм, который описывает этот процесс. Все идеи, которые я выдвинул, включают в себя многократный цикл по списку словарей, что потребовало бы очень много времени. Если бы кто-нибудь мог предложить какое-то понимание, я был бы чрезвычайно благодарен.