# fibonacci.elegant.py def fibonacci(N): """Return all fibonacci numbers up to N. """ a, b = 0, 1 while a <= N: yield a a, b = b, a + b print(list(fibonacci(0))) # [0] print(list(fibonacci(1))) # [0, 1, 1] print(list(fibonacci(50))) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]