1. A method for generating a list for display to a user, the method comprising the steps of: receiving a query; determining a domain based on the query, wherein the domain has a plurality of predicates associated with the domain; determining a query score; ranking entries by the query score; adding entries to the list where the query score of the entry is above a minimum score; generating a diversity result based on entries at or below the minimum score and selecting entries for the list by varying at least one predicate of the plurality of predicates, wherein an order of the predicates follow a predefined hierarchy and higher order predicates are varied at least as much as lower order predicates, thereby including a proportional representation of each available predicate value for the at least one predicate that matches the query, where the diversity result is generated by a computer, wherein a unique integer identifier is assigned to each predicate value within a level of the hierarchy and further comprising indexing through the unique integer identifiers for the plurality of predicates based on the order; and adding the diversity result to the list.