I am looking at Tong's lecture notes on statistical physics, and I wanted to understand a step in his cluster expansion better.
The goal here is to calculate the partition function in the canonical ensemble as a sum over some graphs. The result is to find (after equation (2.35), on page 58)
\begin{align} Z(N,V,T)=\frac{1}{\lambda^{3N}}\sum_{\{m_l\}}\prod_l\frac{U_l^{m_l}}{(l!)^{m_l}m_l!},\tag{p.58} \end{align} where we have the condition \begin{align} \sum_{l=1}^Nm_ll=N.\tag{2.33} \end{align}
I'm happy with everything at this point, but the next step is where I don't exactly follow.
The argument is that the constraint means the sum is difficult to compute, and so a way to avoid this is to look at the grand canonical ensemble \begin{align} \mathcal{Z}(\mu,V,T)=\sum_Nz^NZ(N,V,T),\tag{p.58} \end{align} with $z=e^{\beta\mu}$. Substituting in the above definition of $Z(N,V,T)$, we find \begin{align} \mathcal{Z}(\mu,V,T)&=\sum_Nz^N\frac{1}{\lambda^{3N}}\sum_{\{m_l\}}\prod_l\frac{U_l^{m_l}}{(l!)^{m_l}m_l!}\\ &=\sum_N\sum_{\{m_l\}}\prod_l\left(\frac{z}{\lambda^{3}}\right)^N\frac{1}{m_l!}\left(\frac{U_l}{l!}\right)^{m_l}\\ &=\cdots\\ &=\sum_{m_l=0}^\infty\prod_{l=1}^\infty\left(\frac{z}{\lambda^{3}}\right)^{m_ll}\frac{1}{m_l!}\left(\frac{U_l}{l!}\right)^{m_l}.\tag{p.58} \end{align}
What I would like to understand is how to go from before the $\cdots$ to after. As far as I can tell, because the summation is over all $N$, which in turn dictates the values of $l,m_l$, there is some way to claim this is equivalent to the sum over all $m_l$, and the product over all $l$. I would like to make this a bit more rigorous, but I'm a bit stuck, so would appreciate an explanation.