input: Write a function to generate a random password of length 8, which consists of alphanumeric characters and at least one special character. If no special character is found in the generated password, the function should regenerate the password to ensure it contains at least one special character.
  
  assert generate_password() != generate_password()  # Ensures randomness
  assert len(generate_password()) == 8
  assert any([char in string.punctuation for char in generate_password()])
output: import random
  import string
  
  def generate_password():
      while True:
          password = ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=8))
          if any(char in string.punctuation for char in password):
              return password