I am trying to generate a list of all multisets of length $k$ in a set with $n$ symbols. For example, if I had the set
$S = {A, B, C}$
I would expect the following output for $k = 2$ and $n = 3$:
$O = {(A,A),(A,B),(A,C),(B,B),(B,C),(C,C)}$
What is the proper way to go about generating this list?
I presume you want to do this algorithmically. In Mathematica:
{{A, A}, {A, B}, {A, C}, {B, B}, {B, C}, {C, C}}
More generally:
So for instance
myMultiSet[5,3]yields{{1, 1, 1}, {1, 1, 2}, {1, 1, 3}, {1, 1, 4}, {1, 1, 5}, {1, 2, 2}, {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 3}, {1, 3, 4}, {1, 3, 5}, {1, 4, 4}, {1, 4, 5}, {1, 5, 5}, {2, 2, 2}, {2, 2, 3}, {2, 2, 4}, {2, 2, 5}, {2, 3, 3}, {2, 3, 4}, {2, 3, 5}, {2, 4, 4}, {2, 4, 5}, {2, 5, 5}, {3, 3, 3}, {3, 3, 4}, {3, 3, 5}, {3, 4, 4}, {3, 4, 5}, {3, 5, 5}, {4, 4, 4}, {4, 4, 5}, {4, 5, 5}, {5, 5, 5}}