input: from typing import List
  
  def generate_fibonacci(n: int) -> List[int]:
      """Generate a list of Fibonacci numbers up to n using a recursive approach.
      >>> generate_fibonacci(0)
      []
      >>> generate_fibonacci(1)
      [1]
      >>> generate_fibonacci(2)
      [1, 1]
      >>> generate_fibonacci(10)
      [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
      """
output:     if n <= 0:
          return []
      elif n == 1:
          return [1]
      elif n == 2:
          return [1, 1]
      
      fib_list = [1, 1]
      while True:
          next_fib = fib_list[-1] + fib_list[-2]
          if next_fib > n:
              break
          fib_list.append(next_fib)
      
      return fib_list