# Sua lista original
lista = [(13, 38), (14, 35), (14, 36), (15, 33), (15, 34), (15, 35),
(15, 36), (18, 31), (18, 32), (19, 33), (22, 34), (22, 29), (23, 30),
(23, 31), (24, 32)]
# Importa a biblioteca Numpy
import numpy as np
# Separa em grupos usando como índices da separação os locais onde ocorre uma
# diferença entre o item atual e o próximo maior do que 1
grupos = np.split(lista, [i+1 for i,j in enumerate(np.diff(lista, axis=0)) if j[0] > 1])
# Imprime os grupos produzidos
for i, g in enumerate(grupos):
print('Grupo #{}: {}'.format(i, g.tolist()))
IyBTdWEgbGlzdGEgb3JpZ2luYWwKbGlzdGEgPSBbKDEzLCAzOCksICgxNCwgMzUpLCAoMTQsIDM2KSwgKDE1LCAzMyksICgxNSwgMzQpLCAoMTUsIDM1KSwKICAoMTUsIDM2KSwgKDE4LCAzMSksICgxOCwgMzIpLCAoMTksIDMzKSwgKDIyLCAzNCksICgyMiwgMjkpLCAoMjMsIDMwKSwKICAoMjMsIDMxKSwgKDI0LCAzMildCiAKIyBJbXBvcnRhIGEgYmlibGlvdGVjYSBOdW1weQppbXBvcnQgbnVtcHkgYXMgbnAKIAojIFNlcGFyYSBlbSBncnVwb3MgdXNhbmRvIGNvbW8gw61uZGljZXMgZGEgc2VwYXJhw6fDo28gb3MgbG9jYWlzIG9uZGUgb2NvcnJlIHVtYQojIGRpZmVyZW7Dp2EgZW50cmUgbyBpdGVtIGF0dWFsIGUgbyBwcsOzeGltbyBtYWlvciBkbyBxdWUgMQpncnVwb3MgPSBucC5zcGxpdChsaXN0YSwgW2krMSBmb3IgaSxqIGluIGVudW1lcmF0ZShucC5kaWZmKGxpc3RhLCBheGlzPTApKSBpZiBqWzBdID4gMV0pCiAKIyBJbXByaW1lIG9zIGdydXBvcyBwcm9kdXppZG9zCmZvciBpLCBnIGluIGVudW1lcmF0ZShncnVwb3MpOgoJcHJpbnQoJ0dydXBvICN7fToge30nLmZvcm1hdChpLCBnLnRvbGlzdCgpKSk=
Grupo #0: [[13, 38], [14, 35], [14, 36], [15, 33], [15, 34], [15, 35], [15, 36]]
Grupo #1: [[18, 31], [18, 32], [19, 33]]
Grupo #2: [[22, 34], [22, 29], [23, 30], [23, 31], [24, 32]]