1. A method for list sphere decoding comprising: receiving at least one codeword sent over a multiple-input multiple-output (MIMO) channel, wherein the at least one codeword comprises a plurality of layers, each layer comprising a constellation point of a plurality of candidate constellation points; for each layer, computing a state cost metric using said codeword for each constellation point of the at least one layer, and selecting preferred states of the at least one layer whose state cost metrics meet first preferred criteria; and for each of a plurality of constellation points of said layer, computing a state cost metric using said codeword for each transition from a preferred constellation point of said layer to each constellation point of a following layer, and selecting preferred transitions to said following layer whose state cost metrics meet second preferred criteria.