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

1

Wolfram Language (Mathematica) , 55 bytes

""<>#&/@Union@Tuples[{#,ToUpperCase@#}]&@*Characters

Experimente online!

é o operador de transposição (e é exibido como um T sobrescrito no Mathematica).

Martin Ender
fonte

Respostas:

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}] ""]}

Melhorias graças ao sergiol . Resposta 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}

Usa um número binário para escolher entre maiúsculas / minúsculas ao criar o texto de saída.

Dúthomhas
fonte
165
sergiol
@sergiol Isso é diferente o suficiente para que você deva postar como sua própria resposta e obter um bom crédito por ser incrível.
Dúthomhas 29/04
Não. Eu apenas mudei partes menores da sua resposta, não mudei a abordagem nem os algoritmos essenciais, portanto, no meu ponto de vista, pensei que não merecia criar uma nova resposta para a sua! E duvido que possa obter um algoritmo curto como o original para o mesmo propósito!
Sergiol 29/04
1

Anexo , 39 bytes

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

Experimente online!

Semelhante à resposta perl. (Perdi minha alternativa mais interessante, devo postá-las nas próximas horas.)

Conor O'Brien
fonte
0

JavaScript (ES6), 103

Manipula caracteres não 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]

Teste

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
fonte