Permutation Codes for Discrete Channels