Is morality a combinatorial system in which a small number of simple moral ‘elements’ combine to form a large number of complex moral ‘molecules’? According to the theory of morality-as-cooperation, morality is a collection of biological and cultural solutions to the problems of cooperation recurrent in human social life. As evolutionary game theory has shown, there are many types of cooperation; hence, the theory explains many types of morality, including: family values, group loyalty, reciprocity, heroism, deference, fairness and property rights. As with any set of discrete items, these seven ‘elements’ can, in principle, be combined in multiple ways. But are they in practice? In this paper, we show that they are. For each combination of two elements, we hypothesise candidate moral molecules; and we successfully locate examples of them in the professional and popular literature. These molecules include: fraternity, blood revenge, family pride, filial piety, gavelkind, primogeniture, friendship, patriotism, tribute, diplomacy, common ownership, honour, confession, turn taking, restitution, modesty, mercy, munificence, arbitration, mendicancy, and queuing. Thus morality – like many other physical, biological, psychological and cultural systems – is indeed a combinatorial system. And morality-as-cooperation provides a principled and systematic taxonomy that has the potential to explain all moral ideas, possible and actual. Pursuing the many implications of this theory will help to place the study of morality on a more secure scientific footing.