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. The function should ensure that the generated password meets these criteria and should handle any necessary recursion to satisfy these requirements.
  
  def generate_password():
      from random import choice
      import string
  
      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())
  assert any(c.isupper() for c in generate_password())
  assert any(c.isdigit() for c in generate_password())
output: def generate_password():
      from random import choice
      import string
  
      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()