Вы можете использовать генератор (в значительной степени перевод с вашего описания):
def pattern(a, b):
yield (a, b)
while True:
c, d = (a+2, b+2)
e, f = (a+2, b)
yield (c, d)
yield (e, f)
a, b = (c, d)
Например:
>>> def pattern(a, b):
... yield (a, b)
... while True:
... c, d = (a+2, b+2)
... e, f = (a+2, b)
... yield (c, d)
... yield (e, f)
... a, b = (c, d)
...
>>> g = pattern(2, 3)
>>> [next(g) for _ in range(10)]
[(2, 3), (4, 5), (4, 3), (6, 7), (6, 5), (8, 9), (8, 7), (10, 11), (10, 9), (12, 13)]