input: Write a function to generate a random password of length 8 characters, containing at least one lowercase letter, one uppercase letter, and one number. If the generated password does not meet the criteria, it should recursively generate a new password until it does. The function should return the generated password as a string.
  assert generate_password()=="aB3cD2eF"
  assert generate_password()=="G1hIjK3l"
  assert generate_password()=="M7nOpQ1R"
  assert generate_password()=="S2tUvW8X"
  assert generate_password()=="Y4zAb5C6"
output: import random
  import string
  
  def generate_password():
      while True:
          password = ''.join(random.choices(string.ascii_letters + string.digits, k=8))
          if (any(c.islower() for c in password) and
              any(c.isupper() for c in password) and
              any(c.isdigit() for c in password)):
              return password