Single-track Gray code is a special class of Gray codes that all the columns of its codewords are shifted equivalent. The upper bound of single-track Gray codes is discussed on necklace orderings and self dual necklace orderings. As no length n period 2n single track Gray code exists, extra reading heads are inevitable to obtain period 2n code and in the worst situation 2n reading heads may have to be used. To solve this problem, a subdivision code is defined. Combining a single-track Gray code and the subdivision code, a double-track Gray code can be constructed that have period zn and may reduce the number of reading heads. In that worst 2n reading heads situation, only n+ 1 reading heads are adequate when use combined absolute coding method to obtain period zn.