Вы можете расширить это, чтобы сделать то, что вы хотите:
>>> for a, b in zip(range(10), range(10)[1:]):
... print a, b
вот так:
for filename, next in zip(filenames, filenames[1:]):
print filename, next
Редактировать: я забыл о itertools .
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return izip(a, b)