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"])