my_list = [0, 1, 2, 3, 5, 6, 10, 11, 15, 16, 18, 19, 20]
my_list.sort()
groups = [[my_list[0]]]
for i, val in enumerate(my_list[1:]):
    if val - groups[-1][-1] > 2:
        groups.append([val])
else:
    groups[-1].append(val)
groups
Группировать последовательные целые числа и допускать пробелы в 1