Triángulo desterisk en python [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo recrear el triángulo piramidal? 3 respuestas

Tengo que escribir una función recursiva asterisk_triangle que toma un número entero y luego devuelve un triángulo asterisco que consta de tantas líneas.

Por ejemplo, este es un triángulo asterisco de 4 líneas.

*
**
***
****

Se me ocurrió esta función:

def asterisk_triangle(n):
    """
    takes an integer n and then returns an
    asterisk triangle consisting of (n) many lines
    """
    x = 1
    while (x <= n):
        print("*" * x)
        x = x + 1
    return

Y también tuve que crear un triángulo de asterisco invertido manipulando la primera función.

Se me ocurrió esta función y resultado:

def upside_down_asterisk_triangle(n):
     """
     takes an integer n and then returns a backwards
     asterisk triangle consisting of (n) many lines
     """
     x = 0
     while (x < n):
          print("*" * (n-x))
     x = x + 1
     return


****
***
**
*

Ahora tengo que manipular estas funciones para crear un triángulo asterisco hacia atrás.

   *
  **
 ***
****

Y un triángulo asterisco invertido al revés.

****
 ***
  **
   *

¿Qué funciones debo implementar?

He intentado usar el comando de cadena inversa [:: - 1] después de la función y no funcionó.

Respuestas a la pregunta(1)

Su respuesta a la pregunta