from itertools import permutations
def monomial_symmetric(n, lam):
R = PolynomialRing(ZZ, ['x%d' % (i+1) for i in range(n)])
exps = list(lam) + [0]*(n - len(lam))
return sum(prod(g^a for g, a in zip(R.gens(), e))
for e in sorted(set(permutations(exps))))
monomial_symmetric(5, [3, 2]) # a partition of 5, past this table