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.
Finding all additive orders
combinatorics