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, regenerate it recursively 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
  assert generate_password()!=generate_password()
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()