Combinatorial library expansion can be performed programmatically in Python or directly from the command line with the molli combine command. Because CDXML parsing stores the atom labels and native CDXML attachment point markup (see Section 2.1), these can be accessed directly to specify the rules of combinatorial expansion. The user parses MoleculeLibrary objects containing cores, with labelled attachment points, and substituents with attachment points.