Yes. Since you know that there are (n + k-1), select k such multisets, you probably know about the stars and columns of the combinatorial problem whose solution provides this formula. The solution to this problem involves a sampling procedure to create many subsets: randomly choose a method for placing k stars and n-1 bars, and then determine how the bands divide the stars into groups:
import random
import collections
stars = set(random.sample(xrange(n+k-1), k))
multiset = collections.Counter()
bin_ = 1
for i in xrange(n+k-1):
if i in stars:
multiset[bin_] += 1
else:
bin_ += 1
This will result in collections.Countercounting the number of times each number has been selected. I initialized bin_ = 1to create a multiset {1 ... n}; bin_ = 0will create a subset of {0 ... n-1}.
( , . , . . k n -1 {1... n}, .)