input: Write a python function to generate prime numbers within a range.
  assert generate_prime_numbers(0, 10) == [2, 3, 5, 7]
  assert generate_prime_numbers(10, 20) == [11, 13, 17, 19]
  assert generate_prime_numbers(20, 30) == [23, 29]
output: def generate_prime_numbers(start, end):
      def is_prime(n):
          if n <= 1:
              return False
          if n <= 3:
              return True
          if n % 2 == 0 or n % 3 == 0:
              return False
          i = 5
          while i * i <= n:
              if n % i == 0 or n % (i + 2) == 0:
                  return False
              i += 6
          return True
  
      primes = []
      for num in range(start, end + 1):
          if is_prime(num):
              primes.append(num)
      return primes