1. A non-transitory computer-readable medium having computer executable instructions for performing a method for recommending objects, the method comprising: storing a plurality of symmetrical objects and a plurality of past selections, the plurality of symmetrical objects including a plurality of consumer objects and a plurality of inanimate objects, the plurality of symmetrical objects having attribute names that match, each attribute name having a value, and each past selection including two or more symmetrical objects; determining a time range, a location, and a consumer object based on received consumer information, the consumer object being one of the plurality of symmetrical objects; identifying a plurality of filtered selections from the plurality of past selections, the plurality of filtered selections having been selected in the past during the time range and from the location, the plurality of filtered selections including a plurality of filtered objects, each filtered object being one of the plurality of symmetrical objects; determining a plurality of total differences for the plurality of filtered objects such that a total difference is determined for each filtered object, determining the plurality of total differences including: for each filtered object, determining a plurality of attribute differences such that an attribute difference is determined for each attribute name of a filtered object, each attribute difference being a difference between a value of an attribute name of the consumer object and a value of a corresponding attribute name of the filtered object; and summing the plurality of attribute differences to determine the total difference for the filtered object; and selecting the filtered object that has a smallest total difference to be a recommended object.