MEME is a program for local multiple alignments of DNA and protein sequences . The user must specify how many motifs are expected and how are they expected to occur. The returned motifs in each sequence do not overlap but do not necessarily have the same order. Repeated motifs are handled appropriately.
More details at http://meme.sdsc.edu/