input: Write a function to generate a random password given a set of letters, numbers, and characters. The password should be 8 characters long and include a combination of uppercase letters, lowercase letters, numbers, and special characters.
  
  import random
  
  def generate_random_password():
      string = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
      password = "".join(random.sample(string, 8))
      return password
  
  assert len(generate_random_password())==8
  assert any(c.islower() for c in generate_random_password())==True
  assert any(c.isupper() for c in generate_random_password())==True
  assert any(c.isdigit() for c in generate_random_password())==True
  assert any(c in "!@#$%^&*()?" for c in generate_random_password())==True
output: import random
  
  def generate_random_password():
      string = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
      password = "".join(random.sample(string, 8))
      return password