Генерация координат в окрестности
Предположим, что у меня есть поле NxN, с координатами 0, 1, 2, ..., N-1 по первой оси и 0, 1, 2, ..., N-1 по второй оси. Каким образом можно записать функцию, которая генерирует всевозможные кортежи из k координат, такие что для любых двух координат в этом кортеже их горизонтальное и вертикальное расстояние (по сути по одной и другой оси) не превышает 1? Координаты в кортеже не должны повторяться.
Пример для поля 2x2 и k=1, будет [(0,0), (0,1), (1,0), (1,1)],
для k=2 будет [((0, 0), (0, 1)), ((0, 0), (1, 0)), ((0, 0), (1, 1)), ((0, 1), (1, 0)), ((0, 1), (1, 1)), ((1, 0), (1, 1))].