============================================== ==================== =============================================================
:func:`product` p, q, ... [repeat=1] cartesian product, equivalent to a nested for-loop
:func:`permutations` p[, r] r-length tuples, all possible orderings, no repeated elements
-:func:`combinations` p[, r] r-length tuples, in sorted order, no repeated elements
-:func:`combinations_with_replacement` p[, r] r-length tuples, in sorted order, with repeated elements
+:func:`combinations` p, r r-length tuples, in sorted order, no repeated elements
+:func:`combinations_with_replacement` p, r r-length tuples, in sorted order, with repeated elements
|
``product('ABCD', repeat=2)`` ``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``
``permutations('ABCD', 2)`` ``AB AC AD BA BC BD CA CB CD DA DB DC``
}
PyDoc_STRVAR(combinations_doc,
-"combinations(iterable[, r]) --> combinations object\n\
+"combinations(iterable, r) --> combinations object\n\
\n\
Return successive r-length combinations of elements in the iterable.\n\n\
combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3)");
}
PyDoc_STRVAR(cwr_doc,
-"combinations_with_replacement(iterable[, r]) --> combinations_with_replacement object\n\
+"combinations_with_replacement(iterable, r) --> combinations_with_replacement object\n\
\n\
Return successive r-length combinations of elements in the iterable\n\
allowing individual elements to have successive repeats.\n\
Combinatoric generators:\n\
product(p, q, ... [repeat=1]) --> cartesian product\n\
permutations(p[, r])\n\
-combinations(p[, r])\n\
-combinations_with_replacement(p[, r])\n\
+combinations(p, r)\n\
+combinations_with_replacement(p, r)\n\
");