Selection type generated by nested loops where initial value is current value of parent loop Consider the generator of the selections:

for (i1 = 0;  i1 &lt; 10; i1++)
    for (i2 = i1; i2 &lt; 10; i2++)
        for (i3 = i2; i3 &lt; 10; i3++)
            for (i4 = i3; i4 &lt; 10; i4++)
                printf("%d%d%d%d", i1, i2, i3, i4);


Result:

0000
0001
0002
...
0009
0011 &lt;-- 0010 is skipped
0012
...
0019
0022 &lt;-- 0020 and 0021 are skipped
0023
...
8999
9999


Generated selections have the following property: the order in the selection does not mater, i.e. 0011 0101 1001 1010 1100 are the same.

Basically it is 4-combination of the set { 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, ..., 9, 9, 9, 9}

What do you say to name this type of the selection?

I always get stuck when I say: 

4-xxxxxxxx of the set {0, 1, 2, ..., 9}


where xxxxxxxx is the name of this selection.
The sequences your program generates are non-decreasing sequences.