ECO: a methodology for the enumeration of combinatorial objects