Permutation 組合筆記


Python

1
2
3
import itertools

print(list(itertools.permutations(['a','b','c'])))

或者直接輸出

1
python -c "import itertools; print list(itertools.permutations(['a','b','c']))"

PHP

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
27
28
29
30
31
32
33
34
<?php
function combine_chars($items, $combines = array()) {
static $set;

// Initial set
if (empty($combines) === true) {
$set = array();
}

// Format items type
if (is_string($items) === true) {
$items = str_split($items);
}

// Save combines result
if (empty($items) === true) {
array_push($set, join('', $combines));
}

// Calculate combines result
for ($t=count($items)-1, $i=$t; $i>=0; --$i) {
$temp_items = $items;
$temp_combines = $combines;

array_unshift($temp_combines, array_splice($temp_items, $i, 1)[0]);
combine_chars($temp_items, $temp_combines);
}

// Return
return $set;
}

print_r(combine_chars(array('a', 'b', 'c')));
print_r(combine_chars('abc'));