def maxx(subs):
    al = {}
    for sub in subs:
        for s in sub:
            if not al.has_key(s): al[s] = 1
            else: al[s] += 1
    maxx = max(al.values())
    return filter(lambda item: item[1] == maxx, al.iteritems())


def substrs(words):
    al = []
    if words:
        for word in words:
            subs, ii = [], 0
            for i, char in enumerate(word):
                try:
                    if not subs:
                        subs.append(char)
                        if i != 0:
                            ii += 1
                    elif (char == word[i - 1]) and (char == word[i + 1]):
                        subs[ii] += char
                    else:
                        subs.append(char)
                        ii += 1
                except IndexError:
                    subs[ii] += char
            al.append(subs)
        return maxx(al)

if __name__ == '__main__':
    print substrs(("abcbb",
                   "abcabb",
                   "bb"))