>>> def collatz(n):
while n > 1:
if n%2 == 0:
n //= 2
else:
n = 3*n+1
yield n
>>> gen = collatz(100)
>>> list(gen)
[50, 25, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
>>> gen = collatz(100)
>>> for x in gen:
print("x = %s" % x)
for y in gen:
print("y = %s" % y)
if y%2 == 1: break
x = 50
y = 25
x = 76
y = 38
y = 19
x = 58
y = 29
x = 88
y = 44
y = 22
y = 11
x = 34
y = 17
x = 52
y = 26
y = 13
x = 40
y = 20
y = 10
y = 5
x = 16
y = 8