input: Write a function to generate a random password given a set of letters, numbers, and characters. The function should generate an 8-character password using a predefined set of characters.
  
  import random 
    
  def generate_random_password():
      # All the possible characters that could go into the password 
      string = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
      
      # Using the choice function of the random module choose any character randomly from the set of characters 
      password =  "".join(random.sample(string, 8))
      return password
  
  assert generate_random_password() != generate_random_password()   # Assert that two calls produce different passwords
  assert len(generate_random_password()) == 8   # Assert that the length of the generated password is 8 characters
  assert any(c.isdigit() for c in generate_random_password())   # Assert that at least one character in the password is a digit
  assert any(c.islower() for c in generate_random_password())   # Assert that at least one character in the password is a lowercase letter
  assert any(c.isupper() for c in generate_random_password())   # Assert that at least one character in the password is an uppercase letter
  assert any(not c.isalnum() for c in generate_random_password())   # Assert that at least one character in the password is a special character
output: import random 
    
  def generate_random_password():
      string = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
      password =  "".join(random.sample(string, 8))
      return password