I'm trying to design an algorithm to generate something that I don't know how exactly to call! Ok, I'm not a mathematician, I'm studying computer science and thought this would be a great moment to use some recursive algorithms.
But I'm not asking how to do it, what I really want to know is what's the name of this so I can read more about.
Basically, it would be a kind of permutation, but I'm not sure:
Given a set of $\{a, b, c\}$ generate conjuncts of 3 elements, which came from the set. Example:
aaa | bbb | ccc | aab | aba | baa | bba | bab | abb | ... | aca | ... | acc | ... | abc | acb | cbb | ...
These are 27 in total, as I have three elements, each one from a set of another 3:
_ _ _ -> $3 \cdot 3 \cdot 3$ -> $27$
Similarly, given a set of $\{0, 1\}$ generating a 8 element conjunct would end in a list of zero to 255, in binary.
So, how is this called formally?