def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." # from the itertools module documentation recipe a, b = tee(iterable) next(b, None) return izip(a, b)