1. A method of compressing a data set comprising a plurality of entries, each of the plurality of entries having a string of characters associated therewith, with each character having a value and a position in the string, the method comprising: operating at least one processor to perform a method comprising: a) forming a list of a plurality of list elements, with each list element having the string of one of the plurality of entries associated therewith; b) forming a first plurality of sublists from the plurality of list elements with all the list elements in each sublist of the first plurality of sublists having a string associated therewith having a character with the same value in a first position in the string and each sublist of the first plurality of sublists having a number of said list elements associated therewith; c) forming, for each sublist in at least a portion of the first plurality of sublists, a second plurality of sublists from the list elements in the sublist in the first plurality of sublists, with all the list elements in each sublist of the second plurality of sublists having a string associated therewith having a character with the same value in a second position in the string and each sublist of the second plurality of sublists having a number of said list elements associated therewith; d) for each of the plurality of entries: calculating an indicator based at least in part on the number of list elements in the sublist of the first plurality of sublists and the number of list elements in the sublist of the second plurality of sublists in which the entry is associated; and storing the indicator in computer memory; e) selecting an entry of the plurality of entries as a prefix based on the calculated indicator; and f) storing the selected prefix for use in compressing the data set.