docs: def power_ngram(iter_tokens):
      """
      Generate unigram, bigram, trigram ... and the max-gram,
      different from powerset(), this function will not generate skipped combinations such as (1,3)
      """
      return chain.from_iterable(ngram(j, iter_tokens) for j in range(1, len(iter_tokens) + 1))