code: def _domain_variants(domain):
      
      parts = domain.split('.')
      if len(parts) == 1:
          yield parts[0]
      else:
          for i in range(len(parts), 1, -1):
              yield ".".join(parts[-i:])
docs: >>> list(_domain_variants("foo.bar.example.com"))
      ['foo.bar.example.com', 'bar.example.com', 'example.com']
      >>> list(_domain_variants("example.com"))
      ['example.com']
      >>> list(_domain_variants("localhost"))
      ['localhost']