насколько я знаю это перебор по словарю (в большинстве), там просто идет расчет на простые пароли.
А тут нужно именно перебор всех возможных значений. В голове все вертится, как должно быть, но перевести в код трудновато… :(
Расстояние Левенштейна — это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2
В общем делаете так: сравнивайте строки, допустим две строки, и поставить порог уникальности, т.е. если расстояние левенштейна больше 3 то строки уникальные.