from itertools import groupby testing1 = [(1,1),(2,3),(2,4),(3,5),(3,6),(4,6)] def isneighborlocation(lo1, lo2): if abs(lo1[0] - lo2[0]) == 1 or lo1[1] == lo2[1]: return 1 elif abs(lo1[1] - lo2[1]) == 1 or lo1[0] == lo2[0]: return 1 else: return 0
groupda = groupby(testing1, isneighborlocation) for key, group1 in groupda: print key for thing in group1: print thing expect output 3 group group1 [(1,1)] group2 [(2,3),(2,4] group3 [(3,5),(3,6),(4,6)] -- https://mail.python.org/mailman/listinfo/python-list