input: Write a function to generate a list of all numbers from 0 to 50 that are divisible by both 3 and 5. If a number meets the criteria, it should be included in the list; otherwise, it should be excluded. If the range is invalid or empty, return an empty list.
  assert generate_divisible_numbers(0, 50)==[0, 15, 30, 45]
  assert generate_divisible_numbers(0, 60)==[0, 15, 30, 45, 60]
  assert generate_divisible_numbers(10, 40)==[15, 30]
  assert generate_divisible_numbers(10, 13)==[]
  assert generate_divisible_numbers(-10, 10)==[0]
output: def generate_divisible_numbers(start, end):
      if start > end:
          return []
      return [i for i in range(start, end + 1) if i % 3 == 0 and i % 5 == 0]