Skip to main content
The itertools module provides fast, memory-efficient tools for creating iterators. These functions work with iterators to produce complex iterators.

Module Import

Infinite Iterators

count() - Infinite Counter

cycle() - Cycle Through Iterable

repeat() - Repeat Value

Terminating Iterators

chain() - Chain Iterables

compress() - Filter by Selectors

dropwhile() and takewhile()

filterfalse() - Opposite of filter()

islice() - Slice Iterator

Combinatoric Iterators

product() - Cartesian Product

permutations() - All Permutations

combinations() - All Combinations

Grouping and Accumulating

groupby() - Group Consecutive Elements

accumulate() - Running Totals

Practical Examples

Pagination

Round Robin

Sliding Window

Flatten Nested Structure

Generate All Subsets

Pairwise Iteration

Best Practices

itertools is memory efficient: Iterators don’t create intermediate lists, saving memory.
Use itertools for complex iterations:

Complete Function List

  • count(start=0, step=1) - Count infinitely
  • cycle(iterable) - Cycle through iterable
  • repeat(object, times=None) - Repeat object
  • accumulate(iterable, func=operator.add) - Running totals
  • chain(*iterables) - Chain iterables
  • chain.from_iterable(iterable) - Chain from iterable
  • compress(data, selectors) - Filter by selectors
  • dropwhile(predicate, iterable) - Drop while true
  • filterfalse(predicate, iterable) - Filter false values
  • groupby(iterable, key=None) - Group consecutive
  • islice(iterable, stop) - Slice iterator
  • pairwise(iterable) - Successive pairs (Python 3.10+)
  • starmap(function, iterable) - Map with unpacking
  • takewhile(predicate, iterable) - Take while true
  • tee(iterable, n=2) - Split iterator
  • zip_longest(*iterables, fillvalue=None) - Zip with padding
  • product(*iterables, repeat=1) - Cartesian product
  • permutations(iterable, r=None) - Permutations
  • combinations(iterable, r) - Combinations
  • combinations_with_replacement(iterable, r) - Combinations with replacement

functools

Higher-order functions

collections

Specialized containers

operator

Function equivalents of operators