import urllib2
import time

data = urllib2.urlopen('http://www.puzzlers.org/pub/wordlists/unixdict.txt').read()
words_list = set(data.split('\n')) #Try chaging set to list "list(data.split('\n'))" and notice the difference in timings. 

start = time.clock()
for line in words_list:
    total =[]
    alternate, alternate2 = '',''
    for i in range(0,len(line),2):
        alternate = alternate + line[i]
    if alternate in words_list and len(alternate)>2:
        total.append(alternate)        
    for i in range(1,len(line),2):
        alternate2 = alternate + line[i]
    if alternate2 in words_list and len(alternate2)>2:
        total.append(alternate2)
    if len(total)==2:
        print "%s: makes %s and %s" %(line,alternate, alternate2)
end = time.clock()
print end-start
オルタネート（alternate）とは、アルファベットを厳密な順序で交互に並べ、元の単語と同じ順序で使用することで、少なくとも他の2つの単語を構成する単語のことである。すべての文字が使われなければならないが、小さい単語は必ずしも同じ長さである必要ではありません。 例えば、7文字の単語で、2文字目以降がすべて使われると、4文字の単語と3文字の単語ができます。以下に2つの例を挙げます：

    "board": makes "bad" and "or".
    "waists": makes "wit" and "ass".

http://www.puzzlers.org/pub/wordlists/unixdict.txt にある単語リストを使って、リスト内の各単語を調べ、2文字目以降の文字を使って2つのより小さい単語を作ろうとするpythonプログラムを書きなさい。小さい単語もリストのメンバーでなければなりません。 上記の方法で単語を画面に表示して下さい。