This old answer briefly described the usages of
GroupTheory`Tools`Multisets,GroupTheory`Tools`MultiSubsets,GroupTheory`Tools`PartitionRagged,GroupTheory`Tools`IntegerPartitionCounts, andGroupTheory`Tools`ConsecutiveReplace.
However,
In[1]:= ?? "GroupTheory`Tools`*"
Out[1]= GroupTheory`Tools`ConsecutiveReplace GroupTheory`Tools`IntegerPartitionCounts GroupTheory`Tools`PartitionRagged
GroupTheory`Tools`GeneralizedTuples GroupTheory`Tools`Multisets GroupTheory`Tools`SublistPosition
GroupTheory`Tools`IntegerDecompose GroupTheory`Tools`MultiSubsets
So what do GroupTheory`Tools`GeneralizedTuples, GroupTheory`Tools`SublistPosition, and GroupTheory`Tools`IntegerDecompose do internally?
GroupTheory`Tools`IntegerDecompose appears to do the same thing as System`NumberDecompose except that it only works on explicit non-negative numbers.
GroupTheory`Tools`SublistPosition was mentioned in this old question, but in accordance with
In[2]:= GroupTheory`Tools`SublistPosition[]
GroupTheory`Tools`SublistPosition::argb: GroupTheory`Tools`SublistPosition called with 0 arguments; between 2 and 5 arguments are expected.
there are at least four forms (2 parameters, 3 parameters, 4 parameters, and 5 parameters) to call it in fact! (Any thorough interpretations?)
Last but not least, what is the correct syntax to invoke GroupTheory`Tools`GeneralizedTuples (which seems to differ from Python's tuple as well)???
GroupTheory`Tools`Multisets[{a, b, c}, 2]. you can see this. $\endgroup$