See [Mac95].
Power sums is a natural basis on the space of symmetric polynomials. They are constructed using elemetary symmetric sums
(1)
over which product is taken for the Young diagram
(2)
For example, for and Young diagrams of size
Sym = SymmetricFunctions(QQ)
p = Sym.power()
diagrams = [
lam
for n in range(1, 3)
for lam in Partitions(n).list()
]
arr = [[lam, p[lam].expand(3, alphabet=['x1','x2', 'x3'])]
for lam in diagrams];
table(arr, frame=True)
(3)