#include<iostream>
using namespace std;
#include<vector>
#include<string>
vector<vector<string>> res;//将所有的路径存储在res中
void dfs(vector<string>& nums, vector<vector<string>> &res, vector<string> &re, vector<int> used) {
if (re.size() == nums.size())
{
res.push_back(re);
return;
}
for (int i = 0; i < nums.size(); i++) {
if (used[i] != 0)
continue;
re.push_back(nums[i]);
used[i] = 1;
dfs(nums, res, re, used);
re.pop_back();
used[i] = 0;
}
}
vector<vector<string>> permute(vector<string>& nums) {
vector<string> re;//记录路径
vector<int> used(nums.size(), 0);//标记是否使用过
dfs(nums, res, re, used);
return res;
}
int main()
{
vector<string> nums;
int n;
string number;
cout << "请输入数组的大小:" << endl;
cin >> n;
cout << "请输入数组的元素值:";
while (n--) {
cin >> number;
nums.push_back(number);
}
vector<vector<string>> result;
result = permute(nums);
for (int i = 0; i < result.size(); i++) {
cout << "[";
for (int j = 0; j < result[i].size(); j++) {
cout << result[i][j];
}
cout << "]";
}
cout << endl;
return 0;
}