Расстояние Хэмминга на MySQL посчитать несложно.
BIT_COUNT(HEX(:value1) ^ HEX(:value2))
Но надо определиться с понятием "группы таких чисел". Возьмём три двоичных числа (001, 011, 111) и определим расстояния между ними.
d(001, 011) = 1
d(001, 111) = 2
d(011, 111) = 1
Таким образом, первое и третье числа находятся на расстоянии 1 до второго, но между собой они находятся на расстоянии 2. Если границей расстояния выбрать 1, то как должны сформироваться группы?