Perl 5 , 52 + 1 ( -n) = 53 bytes

Respuestas:

1

Tcl, 165181 bytes

set n -1
while {[incr n]<1<<[llength [set s [split $argv {}]]]} {puts [join [lmap c $s b [split [format %0[llength $s]b $n] {}] {string to[expr $b?{u}:{l}] $c}] ""]}

Mejoras gracias a sergiol . Respuesta anterior:

set s [split $argv {}]
set n -1
while {[incr n]<1<<[llength $s]} {set r ""
foreach c $s b [split [format %0[llength $s]b $n] {}] {set r $r[string [expr $b?{tou}:{tol}] $c]}
puts $r}

Utiliza un número binario para elegir entre mayúsculas y minúsculas al crear el texto de salida.

Dúthomhas
fuente
165
sergiol
@sergiol Eso es lo suficientemente diferente al mío que deberías publicarlo como tu propia respuesta y obtener una buena reputación por ser increíble.
Dúthomhas
No. Solo cambié partes menores de su respuesta, no cambié el enfoque ni los algoritmos esenciales, así que, en mi punto de vista, ¡pensé que no merecía crear una nueva respuesta a partir de la suya! ¡Y dudo que pueda obtener un algoritmo corto como el original para el mismo propósito!
sergiol
1

Adjunto , 39 bytes

&Cross[Sum@V]##Unique@V#SwapCase=>Chars

Pruébalo en línea!

Similar a la respuesta perl. (Perdí mi alternativa más interesante, debería publicarlas en las próximas horas).

Conor O'Brien
fuente
0

JavaScript (ES6), 103

Maneja caracteres no ASCII

(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

Prueba

f=(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

function test() { O.textContent = f(I.value).join('\n') }

test()
<input id=I oninput='test()' value='ž1a'>
<pre id=O></pre>

edc65
fuente