Suppose there are $m$ items, and each item has a price. We order the subsets of items according to their price. For example, if the price of $x$ is 1 and the price of $y$ is 2, then the order is:
$$ \emptyset < x < y < xy $$
What is an algorithm for enumerating all orders of subsets that can be generated by such prices? For example, for two items the output should be two orders:
$$ \emptyset < x < y < xy \\ \emptyset < y < x < xy $$
For three items, the output should be 12 orders - 2 orders for each permutation of $x,y,z$. For example, for $x<y<z$ the two orders are: $$ \emptyset < x < y < z < xy < xz < yz < xyz \\ \emptyset < x < y < xy < z < xz < yz < xyz $$
One solution is to generate all $(2^m)!$ orders and then check, for each order, whether it is compatible with some prices. However, it is not clear how to do this check, and even with a good algorithm for such a check, it will still very wasteful as most orders will be incompatible. For example, for 3 items we will need to check $8!$ orders to return only 12.
Note: I asked a similar question in math.SE, but the answer is apparently incorrect.