1. A method for generating a constrained codeword along an enumerative coding graph having a plurality of states and a plurality of branches, the method comprising: receiving a dataword; encoding the dataword along the enumerative coding graph to generate an enumerative codeword, wherein each branch of the enumerative coding graph is associated with at least two bits of the enumerative codeword; and precoding the enumerative codeword to generate the constrained codeword.