  In 1969 J. Verhoeff provided the first examples of a decimal error detecting
code using a single check digit to provide protection against all single,
transposition, and adjacent twin errors. The three codes he presented are
length 3-digit codes with 2 information digits. To date, the existence of a
length 4-digit code with 3 information digits having these properties remains
an open question. Existence of a 4-digit code would imply the existence of 10
disjoint 3-digit codes. Apparently, no pair of such disjoint 3-digit codes is
known. Phonetic errors, where 2-digit pairs of the forms X0 and 1X are
interchanged, are language dependent, but can often be eliminated.
  Alternate 3-digit codes are developed here which enhance the level of
protection beyond Verhoeff's codes while still optionally providing protection
against phonetic errors. Through almost-disjoint coding schemes, it is shown
how copies of these new codes can fill in the gap between such 3 and 4-digit
codes. The results are extended to other useful alphabet sizes such as 26 and
36 with stronger permutation of digits error detection, and to "tag codes"
where digits are grouped.
