from itertools import tee def pairwise(iterable): “s -> (s0,s1), (s1,s2), (s2, s3), …” a, b = tee(iterable) next(b, None) return zip(a, b) for v, w in pairwise(a): … Para quien esté interesado en pares circulares de, por ejemplo, una lista a , basta con hacer: pairwise(a +[a[0] ] .