We study the following rearrangement problem: Given n words, rearrange and concatenate them so that the obtained string is lexicographically smallest (or largest, respectively). We show that this problem reduces to sorting the given words so that their repeating strings are non-decreasing (or non-increasing, respectively), where the repeating string of a word A refers to the infinite string AAA . . .. Moreover, for fixed size alphabet Σ, we design an O(L) time sorting algorithm of the words (in the mentioned orders), where L denotes the total length of the input words. Hence we obtain an O(L) time algorithm for the rearrangement problem. Finally, we point out that comparing primitive words via comparing their repeating strings leads to a total order, which can further be extended to a total order on the finite words (or all words).