1. A method of searching patterns in a data sequence, comprising: analyzing a data sequence comprising a set of data elements to determine at least two data elements of said set of data elements that, when replaced with one replacement data element, will cause a predetermined metric of irregularity of the data sequence being analyzed to be maximized, said replacement data element not included in the set of data elements of the data sequence being analyzed, wherein said data sequence being analyzed is comprised in one or more computer readable files; replacing the determined at least two data elements with said replacement data element thereby generating a residual data sequence; and iterating said steps of analyzing and replacing until reaching a predetermined value of an iteration threshold, wherein with each iteration said steps of analyzing and replacing are applied to the residual data sequence generated in the preceding iteration, said metric of irregularity comprising an entropy of the data sequence being analyzed such that said at least two data elements to be replaced are the data elements the replacement of which will cause the largest entropy increase in the data sequence being analyzed and said entropy of said data sequence being analyzed comprising: ASE ⁡ ( D ) = SeqEnt ⁡ ( D ) / N = - [ log 2 ⁢ Pr ⁡ ( D ) ] / N = ( log 2 ⁢ N N N ! - ∑ k = 1 K ⁢ ⁢ log 2 ⁢ N k N k N k ! ) / N ; wherein D denotes the data sequence being analyzed, SeqEnt denotes a sequence entropy, ASE denotes an average sequence entropy, N denotes a length of the data sequence being analyzed, and K denotes a size of an alphabet of the data sequence being analyzed.