diff options
Diffstat (limited to 'scripts/utils.py')
-rw-r--r-- | scripts/utils.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/scripts/utils.py b/scripts/utils.py index bd975a2..f3e46c5 100644 --- a/scripts/utils.py +++ b/scripts/utils.py @@ -17,7 +17,8 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. import os @@ -26,12 +27,13 @@ header = '''/* This file is generated by python scripts. Don't edit this file di */ ''' + def expand_file(filename, get_table_content): infile = open(filename, "r") print(header) for line in infile.readlines(): line = line.rstrip(os.linesep) - if len(line) < 3 : + if len(line) < 3: print(line) continue if line[0] == '@' and line[-1] == '@': @@ -39,3 +41,25 @@ def expand_file(filename, get_table_content): print(get_table_content(tablename)) else: print(line) + + +def shuffle_all(instr): + for output in shuffle_recur(instr): + if output == instr: + continue + yield output + + +def shuffle_recur(instr): + if len(instr) == 1: + yield instr + else: + for i, ch in enumerate(instr): + recur = instr[:i] + instr[i+1:] + for s in shuffle_recur(recur): + yield ch + s + + +if __name__ == "__main__": + for s in shuffle_all("abc"): + print(s) |