# Combinations generator

This combinations calculator generates all possible combinations of m elements from the set of n elements.

### Esta página existe graças aos esforços das seguintes pessoas:

#### Timur

Criado: 2014-07-21 07:28:42, Ultima atualização: 2021-10-27 15:13:54

Este conteúdo é licenciado de acordo com a Licença Creative Commons de Atribuição/CompartilhaIgual 3.0 (Unported). Isso significa que você pode redistribuir ou modificar livremente este conteúdo sob as mesmas condições de licença e precisa atribuir ao autor original colocando um hyperlink para este trabalho no seu site. Além disto, favor não modificar qualquer referência ao trabalho original (caso houver) que estiverem contidas neste conteúdo.

For example, if you have a set from 3 elements, {A, B, C}, the all possible combinations of size 2 will be {A,B}, {A,C} and {B,C}. That is, combination here refers to the combination of n things taken m at a time without repetition. The total number of possible combinations, as shown in Combinatorics – combinations, arrangements and permutations, is
$C_{n}^m=\frac{n!}{m!(n-m)!}$.
To use the combinations generator below, you need to fill the set (by default it consists of A, B, C, D, and E elements), and enter combination size. All combinations will be generated using a lexicographic algorithm. The description of the algorithm used by the generator can be found below the calculator.

#### Set

Value
Items per page:

The file is very large. Browser slowdown may occur during loading and creation.

#### Combinations generator algorithm

Combinations are generated in lexicographical order. The algorithm uses indexes of the elements of the set. Here is how it works on example:
Suppose we have a set of 5 elements with indexes 1 2 3 4 5 (starting from 1), and we need to generate all combinations of size m = 3.

First, we initialize the first combination of size m - with indexes in ascending order
1 2 3
Then we check the last element (i = 3). If its value is less than n - m + i, it is incremented by 1.
1 2 4
Again we check the last element, and since it is still less than n - m + i, it is incremented by 1.
1 2 5
Now it has the maximum allowed value: n - m + i = 5 - 3 + 3 = 5, so we move on to the previous element (i = 2).
If its value less than n - m + i, it is incremented by 1, and all following elements are set to value of their previous neighbor plus 1
1 (2+1)3 (3+1)4 = 1 3 4
Then we again start from the last element i = 3
1 3 5
Back to i = 2
1 4 5
Now it finally equals n - m + i = 5 - 3 + 2 = 4, so we can move to first element (i = 1)
(1+1)2 (2+1)3 (3+1)4 = 2 3 4
And then,
2 3 5
2 4 5
3 4 5 - and it is the last combination since all values are set to the maximum possible value of n - m + i.

URL copiado para a área de transferência