<s>[INST] Generate all multisets of length k for n symbols 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?
 [/INST] I presume you want to do this algorithmically.  In Mathematica:
Union[Sort /@ Tuples[{A, B, C}, 2]]

{{A, A}, {A, B}, {A, C}, {B, B}, {B, C}, {C, C}}
More generally:
myMultiSet[n_Integer, k_Integer] := Union[Sort /@ Tuples[Range[n], k]]

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}}
</s>