http://www.perlmonks.org?node_id=521350

randyk has asked for the wisdom of the Perl Monks concerning the following question:

I have an expansion involving N factors:

```(a[0][0] + a[0][1]) (a[1][0] + a[1][1])
(a[2][0] + a[2][1]) ... (a[N-1][0] + a[N-1][1])
for which I'm trying to find general expressions for the 2^N terms involved when this is all multiplied out. Getting an expression for two of the terms is straightforward when the 2nd indices of the a coefficients are the same:
```\$C[0] = 1;
\$C[\$N-1] = 1;
for (\$i=0; \$i<\$N; \$i++) {
\$C[0] *= \$a->[\$i]->[0];
\$C[\$N-1] *=  \$a->[\$i]->[1];
}
but I'm stuck on the problem of getting the other terms. Can someone see a way to do this? Thanks.

UPDATE
Just to clarify the notation, what's desired is expressions for the 2**N coefficients of the expansion. For example, for N = 2 factors and 2**N = 4 terms:

```(a[0][0] + a[0][1]) * (a[1][0] + a[1][1]) =
C[0] + C[1] + C[2] + C[3],
where
C[0] = a[0][0] * a[1][0]
C[1] = a[0][0] * a[1][1]
C[2] = a[0][1] * a[1][0]
C[3] = a[0][1] * a[1][1]