>> You can do e[3,2,1,1].expand(3) to get it expanded in x0, x1, and x2.
>> (more generally, x[i1,i2,...,im].expand(k) will give the expansion in
>> x0,x1,...,x(k-1).
>>
>
> I *don't* want it in the x's, though; I want it the e's. I wrote
> e1=x1+x2+x3 merely to illustrate what I meant by e1. Look back at my
> original example; I already know that, in three variables, m[4,2,1]
> corresponds to e3*(e1^2*e2 - 2*e2^2 - e1*e3). I want *that* expansion in
> general, not the expansion into x's, nor the e[3,2,1,1]+..., which despite
> being in e's is obviously different from the expansion I refer to.
no, it's not different; namely, e[a1,a2,...ak] is just e(a1)*e(a2)*e(a3)*e(ak).
e.g. in your case you get
m[4,2,1]=e3*(e1^2*e2 - 2*e2^2 - e1*e3)=e[3,2,1,1] - 2*e[3,2,2]-e[3,3,1].
(which is only valid if you restrict to the 3st 3 vars).
The different expansion you get in Sage
is due to the fact that whenever k1>3 then e[k1,...]=0.
Thus, no need to expand in x_i, you can just cut out all the e[]'s of this kind.
You can parse the expression using .terms(), and then take .support() of
each e[k1,k2,...].
E.g. e[4,1,1,1].support()[0] gives [4,1,1,1], and
E.g. e[4,1,1,1].support()[0][0] gives 4.
So you can filter these terms out. Perhaps there is a specail function
for this, I don't know, but anyhow it is easy to DIY.
HTH,
Dima