Cadenas de Python

Una función llamada descifrar(cadena), que reciba como parámetro una cadena de caracteres (contraseña) con una longitud máxima de 10 caracteres y muestre todas las combinaciones realizadas hasta descifrar el texto ingresado.
cadena = oculto/123

descifrar(cadena)

Cómo lo podría descifrar?
def descifrar(cadena):

caracteres = list(cadena)

longitud = len(caracteres)

combinaciones = 2**longitud

for i in range(combinaciones):

    combinacion = bin(i)[2:].zfill(longitud)

    candidata = ''

    for j in range(longitud):

        if combinacion[j] == '0':

            candidata += caracteres[j].lower()

        else:

            candidata += caracteres[j].upper()

    print(candidata)

    if candidata == cadena:

        break

Asi me tiene que quedar
Input

cadena = oculto/123

descifrar(cadena)

Output

o

oc

ocu

ocul

ocult

oculto

oculto/

oculto/1

oculto/12

oculto/123

if __name__=="__main__":
    
    LIMIT_CHAR = 10
    
    password = str(input("Introduce una contraseña: "))
    
    if password.__len__() > LIMIT_CHAR:
        print("La longitud de la contraseña no debe ser mayor de 10 carácteres.")
    else:
        char = ''
        for i in password:
            char += i
            print(char)

La variable char permite guardar el carácter anterior y concatenarlo con el siguiente para que en cada siguiente ciclo permanezca las letras anteriores.