def printSingle(number, letter, spacer):
    print "%s%c" % (spacer*(number-1), letter)

def printDouble(number, index, letter, spacer):
    secondSpace = spacer*(index*2)
    secondSpace = secondSpace[:-1]
    print "%s%c%s%c" % (spacer*(number-index-1), chr(ord(letter)+index), secondSpace, chr(ord(letter)+index))
    
def diamond(number, letter, spacing):
    """Takes 3 inputs, the 'number' of letters to print, starting at 'letter', and the number of 'spaces' between each."""
    spacer = ' ' * spacing
    set = range(1, number) + range(number-2, 0, -1)
    printSingle(number, letter, spacer)
    for idx in set:
        printDouble(number, idx, letter, spacer)
    printSingle(number, letter, spacer)
    
if __name__ == "__main__":
    diamond(5, "a", 5)
    diamond(4, "b", 4)
    diamond(6, "d", 3)
    diamond(8, "t", 4)
