Given a number `n`, make a down arrow shaped pattern.

For example, when `n = 5`, the output would be:

    123454321
     1234321
      12321
       121
        1

and for `n = 11`, it would be:

    123456789010987654321
     1234567890987654321
      12345678987654321
       123456787654321
        1234567654321
         12345654321
          123454321
           1234321
            12321
             121
              1
              
An important thing to note in the above example is that the numbers greater than 9 still stay single digit, like after 9 it would be 0 - 9 again instead of 10 - 19.

Note: There are spaces for the indentation on the left of each line and no spaces on the right.
                
Have fun!

Source: codewars | Difficulty: EASY

Starter code: def get_a_down_arrow_of(n):
	

Solutions:
def half(i, n):
	return ''.join((str(d % 10) for d in range(1, n - i + 1)))

def line(i, n):
	h = half(i, n)
	return ' ' * i + h + h[-2::-1]

def get_a_down_arrow_of(n):
	return '\n'.join((line(i, n) for i in range(n)))


from itertools import cycle, islice

def get_a_down_arrow_of(n):
	r = []
	for (i, x) in enumerate(range(n, 0, -1)):
		c = cycle('1234567890')
		s = list(islice(c, x))
		s += s[::-1][1:]
		r.append(' ' * i + ''.join(s))
	return '\n'.join(r)


from itertools import chain

def get_a_down_arrow_of(n):
	result = []
	for i in range(n, 0, -1):
		row = ' ' * (n - i) + ''.join((str(d % 10) for d in chain(range(1, i), range(i, 0, -1))))
		result.append(row)
	return '\n'.join(result)


result = ['1']

def get_a_down_arrow_of(n):
	while len(result) < n:
		i = len(result)
		result.append(result[-1][:i] + str((i + 1) % 10) + result[-1][i - 1::-1])
	return '\n'.join((result[x].center(2 * n - 1).rstrip() for x in range(n - 1, -1, -1)))


digits = '1234567890' * 1000

def get_a_down_arrow_of(n):
	width = 2 * n - 1
	return '\n'.join((''.join(digits[:i - 1] + digits[max(i - 1, 0)::-1]).center(width).rstrip() for i in range(n, 0, -1)))


def get_a_down_arrow_of(n):
	answer = ''
	for i in range(n, 0, -1):
		spaces = ' ' * (n - i)
		half1 = ''.join((str(x % 10) for x in range(1, i + 1)))
		half2 = half1[::-1]
		answer += spaces + half1 + half2[1:] + '\n' * (i > 1)
	return answer


get_a_down_arrow_of = lambda n, m=lambda s: s + s[-2::-1]: '\n'.join((' ' * i + m(('1234567890' * n)[:n - i]) for i in range(n)))


get_a_down_arrow_of = lambda n, s=0: '' if n < 1 else ' ' * s + '1' if n == 1 else '\n'.join([' ' * s + ''.join([str(q % 10) for q in range(1, n + 1)] + [str(q % 10) for q in range(n - 1, 0, -1)])] + [get_a_down_arrow_of(n - 1, s + 1)])