input: from typing import List
  
  
  def fizz_buzz() -> List[str]:
      """ Generate a list of strings where:
      - for multiples of 3, the string is "Fizz"
      - for multiples of 5, the string is "Buzz"
      - for multiples of both 3 and 5, the string is "FizzBuzz"
      - otherwise, the string is the number itself (as a string)
      
      >>> fizz_buzz()[:15]
      ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz']
      """
      result = []
      for i in range(1, 51):
          if i % 3 == 0 and i % 5 == 0:
              result.append("FizzBuzz")
          elif i % 3 == 0:
              result.append("Fizz")
          elif i % 5 == 0:
              result.append("Buzz")
          else:
              result.append(str(i))
      return result
output:     result = []
      for i in range(1, 51):
          if i % 3 == 0 and i % 5 == 0:
              result.append("FizzBuzz")
          elif i % 3 == 0:
              result.append("Fizz")
          elif i % 5 == 0:
              result.append("Buzz")
          else:
              result.append(str(i))
      return result