input: Write a function to generate a multiplication table for numbers within a given range specified by start and end parameters. If either the start or end parameter is not provided, the function should return an error message "Both start and end parameters are required." The function should print the multiplication table in a grid format.
  assert multiplication_table(5, 10)
  # Output:
  # 25  30  35  40  45  50  
  # 30  36  42  48  54  60  
  # 35  42  49  56  63  70  
  # 40  48  56  64  72  80  
  # 45  54  63  72  81  90  
  # 50  60  70  80  90  100  
  assert multiplication_table(1, 3)
  # Output:
  # 1  2  3  
  # 2  4  6  
  # 3  6  9  
  assert not multiplication_table()
  # Output: "Both start and end parameters are required."
output: def multiplication_table(start=None, end=None):
      if start is None or end is None:
          return "Both start and end parameters are required."
      
      for i in range(start, end + 1):
          for j in range(start, end + 1):
              print(f"{i * j}", end="  ")
          print()