input: Write a function to generate a Random Password of length 8 characters, which contains at least one of each character type (lowercase, uppercase, digits, special characters). The function should take no input parameters and return the generated password as a string.
  assert generate_random_password()=="Example1!"
  assert generate_random_password()=="aB3$cdEf"
  assert generate_random_password()=="1Wq@rtYz"
  assert generate_random_password()=="Zx9#As2t"
  assert generate_random_password()=="4yU%bNm6"
output: import random
  import string
  
  def generate_random_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
      return ''.join(random.sample(password, len(password)))