# 46.9 Tuples

`Tuples( set, k )`

`NrTuples( set, k )`

`Tuples` returns the set of all ordered tuples of length k of the set set.

`NrTuples` returns the number of all ordered tuples of length k of the set set.

An ordered tuple of length k of set is an ordered selection with repetition and is represented by a list of length k containing elements of set. There are |set|^k such ordered tuples.

Note that the fact that `Tuples` returns a set implies that the last index runs fastest. That means the first tuple contains the smallest element from set k times, the second tuple contains the smallest element of set at all positions except at the last positions, where it contains the second smallest element from set and so on.

```    gap> Tuples( [1,2,3], 2 );
[ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ], [ 2, 3 ],
[ 3, 1 ], [ 3, 2 ], [ 3, 3 ] ]
gap> NrTuples( [1..10], 5 );
100000 ```

`Tuples(set,k)` can also be viewed as the k-fold cartesian product of set (see Cartesian).

The function `Combinations` (see Combinations) computes unordered selections without repetitions, `Arrangements` (see Arrangements) computes ordered selections without repetitions, and finally the function `UnorderedTuples` (see UnorderedTuples) computes unordered selections with repetitions.

GAP 3.4.4
April 1997