input: Write a function to generate a random password of length 8 characters, which must include at least one lowercase letter, one uppercase letter, one digit, and one special character. If successful, return the password as a string.
  assert generate_password()==any valid 8 character password with at least one lowercase, one uppercase, one digit, and one special character
  assert len(generate_password())==8
output: import random
  import string
  
  def generate_password():
      lowercase = random.choice(string.ascii_lowercase)
      uppercase = random.choice(string.ascii_uppercase)
      digit = random.choice(string.digits)
      special = random.choice(string.punctuation)
      remaining = ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=4))
      password = lowercase + uppercase + digit + special + remaining
      password_list = list(password)
      random.shuffle(password_list)
      return ''.join(password_list)