code: def random(length: int = 8, chars: str = digits + ascii_lowercase) -> Iterator[str]:
      
      while True:
          yield "".join([choice(chars) for _ in range(length)])
docs: A random string.
  
      Not unique, but has around 1 in a million chance of collision (with the default 8
      character length). e.g. 'fubui5e6'
  
      Args:
          length: Length of the random string.
          chars: The characters to randomly choose from.