We know that the number of kk element multisets using letters from {1,…,n}\{1, \dots, n\} is (k+n−1k)\binom{k+n-1}{k}. That is, we are allowed to pick elements from {1,…,n}\{1, \dots, n\} repeatedly, and we want kk such elements.

§ The usual proof: stars and bars

The usual proof involves creating kk "stars" ( ⋆\star) which need to be placed in nn buckets. These buckets are created by having (n−1)(n-1) "bars" ( ∣|). For example, if we wish to consider all k=3k=3 element multisets of the letter n=4n=4: {w,x,y,z}\{w, x, y, z\}:

[w,w,w]↦⋆⋆⋆∣∣∣[w,x,y]↦⋆∣⋆∣⋆∣[x,x,x]↦∣⋆⋆⋆∣∣[x,z,z]↦⋆∣∣⋆⋆ \begin{aligned} &[w, w, w] \mapsto \star \star \star \vert \vert \vert \\ &[w, x, y] \mapsto \star \vert \star \vert \star \vert \\ &[x, x, x] \mapsto \vert \star \star \star \vert \vert \\ &[x, z, z] \mapsto \star \vert \vert \star \star \\ \end{aligned}

§ Direct bijection.

To build a direct bijection, map a kk multiset of nn into a kk subset of n+k−1n+k-1, which is counted by (n+k−1k)\binom{n+k-1}{k}.

I found this very elegant, because it "de-multisets" the multiset by adding just enough to make each element unique, and then simply counts the unique subset. Very slick! We need to add k−1k-1 to the final index, and the largest number we can have is nn so we need n+(k−1)n + (k-1) values. We need a size kk multiset, making us need (n+(k−1)k)\binom{n+(k-1)}{k}.