1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Function Combinaciones { Param( [Object[]]$Object, [String]$Seperator, [UInt32]$CurIndex = 0, [String]$Return = "" ) $MaxIndex = $Object.Count - 1 $Object[$CurIndex] | ForEach-Object { [Array]$NewReturn = "$($Return)$($Seperator)$($_)".Trim($Seperator) If ($CurIndex -lt $MaxIndex) { $NewReturn = Combinaciones $Object -CurIndex ($CurIndex + 1) -Return $NewReturn } $NewReturn } } $palabra='abcd' $arrayletras=@(0..($palabra.Length-1) | % {$palabra[$_]}) #-join "" $arrayletras #Combinar cuatro letras distintas en palabras de cuatro letras #(Combinaciones @($arrayletras,$arrayletras,$arrayletras,$arrayletras)).count Combinaciones @($arrayletras,$arrayletras,$arrayletras,$arrayletras) |