input: Write a function to generate Fibonacci numbers up to a given limit. Return a list of all Fibonacci numbers less than or equal to the given limit. If the limit is less than 0, return an empty list.
  assert Fibonacci(-1) == []
  assert Fibonacci(0) == [0]
  assert Fibonacci(5) == [0, 1, 1, 2, 3, 5]
  assert Fibonacci(10) == [0, 1, 1, 2, 3, 5, 8]
  assert Fibonacci(20) == [0, 1, 1, 2, 3, 5, 8, 13]
output: def Fibonacci(limit):
      if limit < 0:
          return []
      fib_numbers = [0]
      a, b = 0, 1
      while b <= limit:
          fib_numbers.append(b)
          a, b = b, a + b
      return fib_numbers