def wordladder(strings):
def wordladderRecu(strings, used, cur, length):
if len(cur) == length:
return 1
for i in xrange(length):
if not cur or (not used[i] and strings[i][0] == cur[-1][len(cur[-1])-1]):
used[i] = True
cur.append(strings[i])
result = wordladderRecu(strings, used, cur, length)
cur.pop(-1)
used[i] = False
if result:
return 1
return 0
length = len(strings)
used = [False]*length
return wordladderRecu(strings, used, [], length)
if __name__=="__main__":
print wordladder(["hello","world","open","dog","now"])
print wordladder(["dog","world"])
print wordladder(["hello","world"])