input: Write a function to generate a random password using a set of letters, numbers, and special characters. The password should be 8 characters long and should be composed of random characters from the given set. If no input is provided, the function should use a default set of characters.
  
  import random
  
  def generate_password():
      string = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
      password = "".join(random.sample(string, 8))
      return password
  
  assert generate_password() is not None
  assert len(generate_password()) == 8
output: import random
  
  def generate_password(characters="abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"):
      return "".join(random.sample(characters, 8))