We consider iterative channel detection and estimation for coded multiuser systems. The conventional A Posteriori Probability (APP) channel detector has a computational complexity growing exponentially with the number of users. In this paper, we study the channel detection problem from a combinatorial optimization viewpoint and derive a low-complexity soft-output channel detector based on the Evolutionary Programming (EP) optimization algorithm. An iterative channel estimator based on tentative soft estimates fed back from channel decoders is used to provide refined channel parameters to the channel detector. It is shown that the proposed iterative receiver can significantly reduce the computational complexity with slight performance degradation compared to the conventional receiver based on APP detection.