1. An auction method for holding an auction for a product comprising the steps of: receiving bids, for each product type in a transaction, that include minimum desired volumes and maximum desired volumes and evaluation prices for said product; generating a finite set of bids that include as an element said bids that were received; and employing dynamic programming to generate, using said bid set, a subset of bids wherein the maximum gain is obtained within a range represented by the count of said product available for sale.