Напишите функцию, которая примет a='Москва, ул. Васюковская 12 ' и b='Москва, ул. Васюковая 121' и вернет true для определенных условий (что-то вроде дом начинается одинаково && первые 5-6 символов улиц начинаются/заканчиваются одинаково && одинаковый город). Тогда берите все части, которые совпали и берите по ним хэш.
Скажем, для данного примера возьмите хэш по выделенной строке:
Москва, ул. Васюковская 12
Москва, ул. Васюковая 121
Тут кол-во коллизий не так уж и мало.
Этот алгоритм был выдуман сразу после прочтения, и вероятнее всего есть куда более элегантные решения.