1. A non-transitory computer readable storage medium, comprising executable instructions to: receive a request for information about a data set; parse, in response to the request, an enumeration tree based on the data set to obtain the requested information; and return the requested information; wherein the enumeration tree comprises nodes connected by edges and is formed by: retrieving the data set with a set of records and a set of categories; reordering the data set by successively grouping the set of records in accordance with the set of categories; accepting a filter; copying a set of applicable branches from the enumeration tree, the set of applicable branches being specified by the filter; and modifying the enumeration tree with the set of applicable branches.