From: Raymond Hettinger Date: Thu, 28 Feb 2008 09:23:48 +0000 (+0000) Subject: Add repeat keyword argument to itertools.product(). X-Git-Tag: v2.6a1~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=18750ab2a052f3d7b26b5140744d73186f9fd34f;p=thirdparty%2FPython%2Fcpython.git Add repeat keyword argument to itertools.product(). --- diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index 615532270d6c..d9a2b331e0bb 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -340,7 +340,7 @@ loops that truncate the stream. .. versionadded:: 2.6 -.. function:: product(*iterables) +.. function:: product(*iterables[, repeat]) Cartesian product of input iterables. @@ -353,11 +353,15 @@ loops that truncate the stream. so that if the inputs iterables are sorted, the product tuples are emitted in sorted order. + To compute the product of an iterable with itself, specify the number of + repetitions with the optional *repeat* keyword argument. For example, + ``product(A, repeat=4)`` means the same as ``product(A, A, A, A)``. + Equivalent to the following except that the actual implementation does not build-up intermediate results in memory:: - def product(*args): - pools = map(tuple, args) + def product(*args, **kwds): + pools = map(tuple, args) * kwds.get('repeat', 1) if pools: result = [[]] for pool in pools: