def substrings(s): ''' given a string s, generate all substrings of s ''' ss1=[] for i in range(len(s1)): for j in range(i,len(s1)): if s1[i:j+1] not in ss1: ss1.append(s1[i:j+1]) return(ss1) if __name__ == '__main__': import sys s1=sys.argv[1] s2=sys.argv[2] ss1=[] for i in range(len(s1)): for j in range(i,len(s1)): if s1[i:j+1] not in ss1: ss1.append(s1[i:j+1]) # s1の部分文字列をss1に格納 ss2=[] for k in range(len(s2)): for l in range(k,len(s2)): if s2[k:l+1] not in ss2: ss2.append(s2[k:l+1]) # s2の部分文字列をss2に格納 # common = [] # 共通部分文字列とその長さを格納 #for i in ss1: # if i in ss2: common.append((len(i), i)) common = [] common.sort() # 長さでソート common.reverse() # 長さでソート MAX = common[0][0] # 最初の要素(len(i), i)の最初の要素が最大の長さ #res = [] # 結果を収める配列 #for (l, i) in common: # if l == MAX: res.append(i) res = [] print res