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 these criteria, it should retry generating the password until it does.
  
  def generate_password():
      chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
      password = ''.join(choice(chars) for i in range(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()
  
  assert len(generate_password())==8
  assert any(c.islower() for c in generate_password())==True
  assert any(c.isupper() for c in generate_password())==True
  assert any(c.isdigit() for c in generate_password())==True
output: def generate_password():
      chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
      password = ''.join(choice(chars) for i in range(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()