package main

import "fmt"

func main() {

	aa := []string{"a", "b", "c", "d"}
fmt.Println(permutation(aa))
} func permutation(sarr []string) (rets []string) { if len(sarr) == 1 {
rets = sarr
return rets
}
for i := 0; i < len(sarr); i++ {
// append(sarr[:i], sarr[i+1:]...)直接append会改变sarr
sonsarr := permutation(append(append([]string{}, sarr[:i]...), sarr[i+1:]...)) for _, sons := range sonsarr {
rets = append(rets, sarr[i]+sons)
}
}
return rets
}

最新文章

  1. 11.Configure Many-to-Many(配置多对多关系)【Code-First系列】
  2. 油田 Oil Deposits
  3. centos7下更改java环境
  4. ASP.NET WebAPI 10 Action的选择(二)
  5. C安全编码--预处理
  6. JDK 环境变量的配置
  7. Win10无法上网提示缺少一个或者多个网络协议的处理方法
  8. 视频转换工具 Transmageddon
  9. 逻辑回归损失函数(cost function)
  10. [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
  11. SpringMVC 国际化-中英文切换
  12. Scheme 中的 pair 和 list 简述
  13. Iozone
  14. PHP时间戳和日期互转换
  15. 【js课设】电子画板01
  16. 【Mac使用系列】常用软件及快捷键
  17. python fabric实现远程操作和部署示例
  18. C# windows服务:C#windows服务中的Timer控件的使用
  19. 输出字符串中最长的单词 C# 算法
  20. SpringBoot —— AOP注解式拦截与方法规则拦截

热门文章

  1. windows 服务删除或停止
  2. vscode 设置默认模板
  3. Vue 超长列表渲染性能优化
  4. 【面试题】 webpack面试篇
  5. C语言中关于宏定义的学习
  6. 正则过滤http|https地址
  7. Vue2.0 双向绑定的原理与缺陷?
  8. vue.js----之前端路由(二)
  9. sql常用系统存储过程
  10. windows下搭建nrf52832nordic_ble_sniffer_3.0+wireshark抓包环境