version 3 : iterate on powerset of PI, starting with the smallest one.

This strategy is much more efficient, because we can then prune lots of
disqualified branches