1. A computer-implemented method, comprising: characterizing compatibility between one or more enumerations of one or more products using a Zero-suppressed binary Decision Diagram (ZDD) rule model including one or more Include rules and one or more Exclude rules; receiving one or more enumerations of a product selected by a user using a graphical interface; recursively creating a ZDD sub-tree by scanning the one or more Include rules and, for nodes traversed during the scanning, one or more of: if an index matches one of the one or more enumerations of the product selected by the user or if the index matches one or more valid combinations of one or more enumerations of the product provided to the user, creating a new node in a ZDD sub-tree that includes the index and one or more graphs pointed to by the Then and Else legs of the node; if a Constant node is encountered, returning the constant; or returning one or more graphs pointed to by the Else leg of the node; determining complete paths through the ZDD sub-tree terminating at a One node to produce potentially valid combinations; excluding some of the potentially valid combinations by applying the one or more Exclude rules to the potentially valid combinations as each of the potentially valid combinations is produced; determining the one or more valid combinations of one or more enumerations of the product responsive to the excluding the some of the potentially valid combinations; and providing the one or more valid combinations as the list of product choices to the user.