input: Write a function that generates 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 these criteria, the function should recursively generate a new one until it does. The function should return the generated password as a string.
  assert generate_password()!=generate_password()
  assert len(generate_password())==8
  assert any(c.islower() for c in generate_password())
  assert any(c.isupper() for c in generate_password())
  assert any(c.isdigit() for c in generate_password())
output: import random
  import string
  
  def generate_password():
      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
      else:
          return generate_password()