クラスを定義する。
class CombiIter(object):

    def __init__(self, iterable, r=False):
        self._iter = iterable
        self._round = r

    def __iter__(self):

        it = iter(self._iter)
        last = first = it.next()

        for v in it:
            yield (last, v)
            last = v

        if self._round:
            yield (last, first)

r を真にすると最後に先頭の値とペアを作る。
list(CombiIter(range(5), r=True))
>> [(0, 1), (1, 2), (2, 3), (3, 4), (4, 0)]

list(CombiIter(range(5), r=False))
>> [(0, 1), (1, 2), (2, 3), (3, 4)]

for文に放り込む。
for v1, v2 in CombiIter(range(5), r=True):
    print v1, v2

>> 0 1
>> 1 2
>> 2 3
>> 3 4
>> 4 0
地味に便利。